Вот простой, который экранирует меня, когда я вижу разработчиков, которые не понимают его:
- Порядок Операций
Используйте свойства Placement и PlacementTarget, чтобы расположить его относительно любой панели, находящейся в корне окна. Итак, если у меня есть Grid
, StackPanel
и т. Д., Которые содержат все остальные «вещи» в окне под названием MainPanel
, я делаю что-то вроде:
<Popup
PlacementTarget="{Binding ElementName=MainPanel}"
Placement="Center"
>
Во-первых, вы можете использовать статические свойства FullPrimaryScreenHeight
, FullPrimaryScreenWidth
класса System.Windows.SystemParameters
, чтобы получить высота и ширина экрана. Затем вы можете установить свойства Top
и Left
вашего Popup Control, используя ширину и высоту перед его отображением.
Что-то вроде.
double primScreenHeight = System.Windows.SystemParameters.FullPrimaryScreenHeight;
double primScreenWidth = System.Windows.SystemParameters.FullPrimaryScreenWidth;
_yourControl.Top = (primScreenHeight - _yourControl.Height) / 2;
_yourControl.Left = (primScreenWidth - _yourControl.Width) / 2;