WPF窗口位置

本文关键字:位置 窗口 WPF | 更新日期: 2023-09-27 17:54:24

我之前问过一个关于在这里创建子窗口的问题…当我打开子窗口时,它不会以父窗口为中心打开。如何将其设置为对父窗口居中打开?

WPF窗口位置

这个解决方案对我来说很好。

在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类中运行,那么您可以使用this。崩溃

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();