WPF - Установить положение окна диалога относительно основного окна?
Я просто создаю свой собственный AboutBox и вызываю его с помощью Window.ShowDialog()
Как мне расположить его относительно главного окна, то есть на 20 пикселей сверху и по центру?
Ответ 1
Вы можете просто использовать Window.Left и Window.Top свойства. Прочтите их из главного окна и присвойте значения (плюс 20 пикселей или что-то еще) в AboutBox до, вызвав метод ShowDialog().
AboutBox dialog = new AboutBox();
dialog.Top = mainWindow.Top + 20;
AboutBox dialog = new AboutBox();
dialog.Owner = Application.Current.MainWindow; // We must also set the owner for this to work.
dialog.WindowStartupLocation = WindowStartupLocation.CenterOwner;
Если вы хотите, чтобы он был центрирован по горизонтали, но не по вертикали (т.е. фиксированному вертикальному расположению), вам нужно будет сделать это в EventHandler после загрузки AboutBox, потому что вам нужно будет рассчитать горизонтальное положение в зависимости от ширины ofBox, и это известно только после того, как оно было загружено.