[英]Centering new dialog window in WPF
因此,我在窗口中有一個用戶控件,當單擊按鈕時,該控件會創建一個新的對話框窗口。 我希望該窗口出現在調用它的窗口頂部。 我試圖做到這一點...
NewDialog dlg = new NewDialog();
dlg.WindowStartupLocation = WindowStartupLocation.CenterOwner;
dlg.ShowDialog();
問題在於所有者似乎不是調用窗口(可能是因為用戶控件正在調用而不是實際窗口?)。 所以我嘗試添加這個...
dlg.Owner = Application.Current.Windows[0];
多數情況下都有效,但這不是通用解決方案,因為有時我的新窗口必須調用新窗口,並且我希望它們以調用窗口為中心,而不是主窗口。 是否有更好的方法將所有者正確設置為用戶控制窗口的一部分? 我嘗試了許多變體,所有變種似乎都有些奇怪,窗口出現在完全不同的位置,或者某些評估結果不正確並引發錯誤。
有什么建議么?
如果this
是類型的不是Window
使用靜態Window.GetWindow方法獲取主機的窗口。
dlg.Owner = Window.GetWindow(this);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.