我有一个高度= 300且宽度= 400的子窗口。当我最大化这个子窗口时,它显示在left = 0和top = 0 position.I希望它显示在MainWindow的中心。 / p>
我尝试过以下方法
在Window_StateChanged事件中,我试图将其位置更改为left = 100和Top = 140.这些值已分配,但仍显示在left = 0和Top = 0 position。
< / LI>我也试图改变它在Window_SizeChanged事件中的位置,但它也没有用。
然后我觉得布局可能不会刷新,所以我使用this.UpdateLayout()刷新它,但没有工作。
答案 0 :(得分:0)
这可能是你之后的
void Window1_StateChanged(object sender, EventArgs e)
{
if (this.WindowState == System.Windows.WindowState.Maximized)
{
this.WindowState = System.Windows.WindowState.Normal;
this.Left = (App.Current.MainWindow.Width - this.MaxWidth) / 2 + App.Current.MainWindow.Left;
this.Top = (App.Current.MainWindow.Height - this.MaxHeight) / 2 + App.Current.MainWindow.Top;
this.Width = this.MaxWidth;
this.Height = this.MaxHeight;
}
}