Положение окна WPF

Ранее я задавал вопрос о создании дочернего окна здесь... Теперь, когда я открываю дочернее окно, оно не открывается по центру родительского окна. Как я могу установить его открытие по центру родительского окна?

3 ответа

Решение

Это решение отлично сработало для меня.

Вот метод, который я нашел для центрирования окна в родительском или главном окне приложения в WPF. Это не слишком отличается от того, как вы делаете это в WinForms.

Для дочернего окна установите его WindowStartupLocation в "CenterOwner". Это заставит его показывать в центре окна-владельца. коллапс

<Window x:Class="WpfApplication1.TestChild"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="TestChild" Height="300" Width="300"
    WindowStartupLocation="CenterOwner">

Теперь все, что осталось сделать, это установить его владельца перед его отображением. Если код, который вы используете для отображения окна, выполняется внутри класса Window, то вы можете просто использовать это. коллапс

TestChild testWindow = new TestChild();
testWindow.Owner = this;
testWindow.Show();

Однако это не всегда так; иногда вам нужно отобразить дочернее окно из кода, запущенного на странице или пользовательского элемента управления. В этом случае вы хотите, чтобы дочернее окно было центрировано по отношению к главному окну приложения. коллапс

TestChild testWindow = new TestChild();
testWindow.Owner = Application.Current.MainWindow;
testWindow.Show();

Попробуй это.

aboutWindow.WindowStartupLocation= WindowStartupLocation.CenterOwner ; 

aboutWindow.ShowDialog(this); 

Вы можете попробовать это:

 AboutWindow window = new AboutWindow();
 window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
 window.Owner = this;

 window.ShowDialog();
Другие вопросы по тегам