WPF何时会产生this.WindowStartupLocation = WindowStartupLocation.CenterOwner;
效果?
我希望这是默认行为,但是如果存在一些窗口布局信息(Top,Left,...),我想在窗口的Loaded
事件中设置它们。但这不能正常工作。
如果我发表评论WindowStartupLocation
,它就有效。
也许有人先解决了这个问题。谢谢!
答案 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;
}