2010-10-28 124 views
0

在我的應用程序中打開的彈出窗口始終保持最高。當我最小化應用程序時,它會消失。但除此之外,如果應用程序打開一個新窗口,或者如果我切換到另一個程序,而不會最小化應用程序,彈出窗口將保持最高。當應用程序失去焦點時,如何隱藏彈出窗口?WPF:彈出窗口總是浮在頂部。我該如何糾正?

感謝

回答

2

這聽起來像你需要通過設置Owner屬性來創建它的窗口彈出的所有者/父對象設置爲正確的窗口。

+0

你會怎麼做?窗口的Owner屬性需要是一個不是彈出窗口的窗口? – esylvestre 2011-06-17 12:30:21

+0

@esylvestre:創建彈出窗口時,將彈出窗口的所有者設置爲創建時的窗口(例如主應用程序窗口) – 2011-06-17 12:35:05

+0

如何設置Popup的所有者? – sll 2011-07-18 12:45:30

0

您可以通過所有者(父窗口),以彈出窗口的構造函數,然後指定

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();