2011-05-29 105 views
2

我試圖創建一個始終顯示在屏幕中心的模式確認對話框。以全屏應用程序爲中心的模式WPF窗口

我試着使用:

ConfirmCreate confirmCreate = new ConfirmCreate(); // ConfirmCreate extends Window. 
bool? dialogResult = confirmCreate.ShowDialog(); 
confirmCreate.Owner = this; 
confirmCreate.WindowStartupLocation = WindowStartupLocation.CenterOwner; 

......還有......

ConfirmCreate confirmCreate = new ConfirmCreate(); 
bool? dialogResult = confirmCreate.ShowDialog(); 
confirmCreate.WindowStartupLocation = WindowStartupLocation.CenterScreen; 

......甚至......

ConfirmCreate confirmCreate = new ConfirmCreate(); // ConfirmCreate is a subclass of Window. 
bool? dialogResult = confirmCreate.ShowDialog(); 
confirmCreate.WindowStartupLocation = WindowStartupLocation.Manual; 
confirmCreate.Left = Width/2 - confirmCreate.Width/2; 
confirmCreate.Top = Height/2 - confirmCreate.Height/2; 

無濟於事,有人可以解釋爲什麼這不起作用嗎?

回答

3

在最後嘗試所有選項confirmCreate.ShowDialog();。換句話說,設置爲WindowStartupLocation的設置,然後撥打電話ShowDialog()

+0

呀,只要我貼的問題發現它;) – ocodo 2011-05-29 23:46:29

0

那麼,看了代碼後,我意識到我有點愚蠢。

如果我在使用ShowDialog()方法之前設置了屬性,則CentreScreenCentreOwner屬性將正常工作。

ConfirmCreate confirmCreate = new ConfirmCreate(); // ConfirmCreate extends Window. 
confirmCreate.Owner = this; 
confirmCreate.WindowStartupLocation = WindowStartupLocation.CenterOwner; 
bool? dialogResult = confirmCreate.ShowDialog(); 

和...

ConfirmCreate confirmCreate = new ConfirmCreate(); 
confirmCreate.WindowStartupLocation = WindowStartupLocation.CenterScreen; 
bool? dialogResult = confirmCreate.ShowDialog(); 
相關問題