WindowStartupLocation什么时候生效

时间:2015-09-28 09:29:31

标签: c# wpf position

WPF何时会产生this.WindowStartupLocation = WindowStartupLocation.CenterOwner;效果?

我希望这是默认行为,但是如果存在一些窗口布局信息(Top,Left,...),我想在窗口的Loaded事件中设置它们。但这不能正常工作。

如果我发表评论WindowStartupLocation,它就有效。

也许有人先解决了这个问题。谢谢!

1 个答案:

答案 0 :(得分:1)

WindowStartupLocation生效并仅在启动时将窗口设置在中心,因此一旦设置了窗口,它就不会对调整窗口大小或移动窗口产生任何其他影响。

MSDN说:

  

获取或设置首次显示时窗口的位置

另请参阅此MSDN blog,其中建议您如何将其作为默认行为进行连接:

private void SizeChangedHandler(Object sender, SizeChangedEventArgs e)
{
    Rect workArea = SystemParameters.WorkArea;
    this.Left = (workArea.Width - this.ActualWidth) / 2;
    this.Top = (workArea.Height - this.ActualHeight) / 2;
}

private void LocationChangedHandler(Object sender, EventArgs e)
{
    Rect workArea = SystemParameters.WorkArea;
    this.Left = (workArea.Width - this.ActualWidth) / 2;
    this.Top = (workArea.Height - this.ActualHeight) / 2;
}