Вы можете использовать свойство HorizontalOffset
всплывающего окна. Если вы знаете ширину переключателя, вы можете установить число в XAML:
<Popup Placement="Bottom" PlacementTarget="{Binding ElementName=button}"
HorizontalOffset="-100"
IsOpen="{Binding IsChecked, ElementName=button}" StaysOpen="False">
Если вам нужен более общий c подход, в коде позади вы можете вычислить точное смещение, которое необходимо :
popup.HorizontalOffset = -125 + button.ActualWidth / 2;