在我的應用程序中打開的彈出窗口始終保持最高。當我最小化應用程序時,它會消失。但除此之外,如果應用程序打開一個新窗口,或者如果我切換到另一個程序,而不會最小化應用程序,彈出窗口將保持最高。當應用程序失去焦點時,如何隱藏彈出窗口?WPF:彈出窗口總是浮在頂部。我該如何糾正?
感謝
在我的應用程序中打開的彈出窗口始終保持最高。當我最小化應用程序時,它會消失。但除此之外,如果應用程序打開一個新窗口,或者如果我切換到另一個程序,而不會最小化應用程序,彈出窗口將保持最高。當應用程序失去焦點時,如何隱藏彈出窗口?WPF:彈出窗口總是浮在頂部。我該如何糾正?
感謝
這聽起來像你需要通過設置Owner屬性來創建它的窗口彈出的所有者/父對象設置爲正確的窗口。
您可以通過所有者(父窗口),以彈出窗口的構造函數,然後指定
public class PopupWindow: Window
{
public PopupWindow(Window owner)
{
this.Owner = owner;
}
}
然後打開彈出窗口
現在打開你的彈出窗口,你會使用這樣的:
var popup = new PopupWindow(ownerWindow);
popup.Show();
,或者如果呼叫者是父(所有者)
var popup = new PopupWindow(this);
popup.Show();
你會怎麼做?窗口的Owner屬性需要是一個不是彈出窗口的窗口? – esylvestre 2011-06-17 12:30:21
@esylvestre:創建彈出窗口時,將彈出窗口的所有者設置爲創建時的窗口(例如主應用程序窗口) – 2011-06-17 12:35:05
如何設置Popup的所有者? – sll 2011-07-18 12:45:30