2015-09-28 92 views
1

什麼時候WPF需要this.WindowStartupLocation = WindowStartupLocation.CenterOwner;效果?什麼時候WindowStartupLocation生效

我想這是默認行爲,但如果存在一些窗口布局信息(上,左,...),我想設置它們在窗口的Loaded事件中。但是這不能正常工作。

如果我評論出WindowStartupLocation,它的工作原理。

也許有人解決過這個問題。謝謝!

回答

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; 
} 
+0

沒錯,但首先顯示也可以是Loaded事件後,還是我錯了? – BendEg