簡體   English   中英

在WPF中將新對話框窗口居中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM