如何在WPF中最大化后在MainWindow的中心显示子窗口?

时间:2014-07-01 18:10:07

标签: .net wpf maximize-window

我有一个高度= 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()刷新它,但没有工作。

1 个答案:

答案 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;
        }
    }