2013-03-07 36 views
1

我的wpf應用程序中有一個模式彈出窗口。顯示該窗口後,在一些(罕見的)情況下,窗口從UI中消失。但是我們可以發現使用「alt + tab」並且不能使其活躍。WPF彈出窗口意外從UI中消失

請找我使用的代碼下面,

 //WindowInteropHelper assists interoperation between Windows Presentation Foundation (WPF) and Win32 code. 

     private void OnControlClick(object sender, RoutedEventArgs e) 
     { 
     System.Drawing.Point p = System.Windows.Forms.Control.MousePosition; 
     MyPopup popup = new MyPopup(); 

     _windowInteropHelper = new System.Windows.Interop.WindowInteropHelper(popup); 
     _windowInteropHelper.Owner = this._owner; 
     popup.WindowStartupLocation = System.Windows.WindowStartupLocation.Manual; 
     popup.Left = p.X; 
     popup.Top = p.Y; 

     popup.Closing += new System.ComponentModel.CancelEventHandler(OnPopupClosing); 
     popup.ShowDialog(); 
     } 
+0

我們可能需要更多的代碼才能瞭解正在發生的事情。 「_owner」如何獲得它的價值?如何定義MyPopup?是否可以使用WPF'Popup'控件? – Tinsa 2013-03-07 07:14:34

+0

MyPopup派生自Window類,WindowInteropHelper類具有一個IntPtr類型的「Owner」屬性,該屬性獲取或設置WPF所有者窗口的句柄。我需要一個模式窗口作爲彈出窗口。 – 2013-03-07 09:26:07

回答

0

嘗試使用IsOpen屬性來顯示/隱藏彈出。