private double CalculateHorizontalCenterOffset(double initialOffset, double flyoutWidth, double elementWidth) { double newX = 0.0; if (_realizedPlacement == PlacementMode.Top || _realizedPlacement == PlacementMode.Bottom) { newX = this.HorizontalOffset + initialOffset - ((flyoutWidth / 2) - (elementWidth / 2)); } else { newX = this.HorizontalOffset + initialOffset; } return newX; }