.net 在WPF中最大化后,如何在主窗口的中心显示子窗口?
我有一个子窗口,高度=300,宽度=400。当我最大化这个子窗口时,它会显示在左侧=0,顶部=0的位置。我希望它显示在主窗口的中心 我尝试了以下方法.net 在WPF中最大化后,如何在主窗口的中心显示子窗口?,.net,wpf,maximize-window,.net,Wpf,Maximize Window,我有一个子窗口,高度=300,宽度=400。当我最大化这个子窗口时,它会显示在左侧=0,顶部=0的位置。我希望它显示在主窗口的中心 我尝试了以下方法 在Window_StateChanged事件中,我尝试将其位置更改为left=100和Top=140。这些值已分配,但仍显示在left=0和Top=0位置 我还试图改变它在Window_SizeChanged事件中的位置,但它也不起作用 然后我觉得布局可能无法刷新,所以我使用这个.UpdateLayout()刷新了布局,但没有工作 这可能就是你想
- 在Window_StateChanged事件中,我尝试将其位置更改为left=100和Top=140。这些值已分配,但仍显示在left=0和Top=0位置
- 我还试图改变它在Window_SizeChanged事件中的位置,但它也不起作用
- 然后我觉得布局可能无法刷新,所以我使用这个.UpdateLayout()刷新了布局,但没有工作
- 这可能就是你想要的
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;
}
}
“最大化”和“中心化”通常不会同时出现。。。你是在问如何将控件保持在主窗口的中心位置吗?我希望我的子窗口在最大化后处于相同的位置。它应该增加大小,但不增加位置。这里有一些有趣的事情我还没有完全弄明白:(在NuGet中找到Microsoft.Windows.Shell)感谢你的努力,兄弟,但是现在这样做,窗口的状态变得正常,我将无法“还原”。