1

我有一个高度 = 300 和宽度 = 400 的子窗口。当我最大化这个子窗口时,它显示在左侧 = 0 和顶部 = 0 位置。我希望它显示在主窗口的中心。

我尝试了以下方法

  • 在 Window_StateChanged 事件中,我尝试将其位置更改为 left=100 和 Top=140。值已分配,但仍显示在 left=0 和 Top=0 位置。

  • 我也试图改变它在 Window_SizeChanged 事件中的位置,但它也没有工作。

  • 然后我觉得布局可能不会刷新,所以我用 this.UpdateLayout() 刷新了它,但没有用。

4

1 回答 1

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;
        }
    }
于 2014-07-02T19:16:00.983 回答