1
J'ai une fenêtre contextuelle modale dans mon application wpf. Après avoir montré cette fenêtre, dans certaines situations (rares), la fenêtre a disparu de l'interface utilisateur. Mais nous pouvons trouver cela en utilisant "alt + tab" et ne pouvons pas le rendre actif.fenêtre pop-up WPF disparaît de l'interface utilisateur de manière inattendue
S'il vous plaît trouverez ci-dessous le code i utilisé,
//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();
}
Nous avons probablement besoin de plus de code pour comprendre ce qui se passe. Comment '_owner' obtient-il sa valeur? Comment 'MyPopup' est-il défini? Est-il possible d'utiliser le contrôle WPF 'Popup' à la place? – Tinsa
MyPopup est dérivé de la classe Window et la classe WindowInteropHelper a une propriété appelée "Owner" de type IntPtr, qui obtient ou définit le handle de la fenêtre du propriétaire WPF. J'ai besoin d'une fenêtre modale en tant que popup. –