2017-09-27 4 views
0

J'ai un contrôle WPF qui, dans certains cas existe en tant que composant de l'application WPF et dans l'autre est hébergé dans Windows Forms. Comment puis-je détecter le second cas (un contrôle WPF est intégré dans WinForms)?Comment vérifier si le contrôle WPF est hébergé dans WinForms?

+0

Je vais essayer '' Window.GetWindow (ctrl), '' et s'attendrait à revenir nulle, dans un environnement hébergé. –

Répondre

1

Essayez ceci:

HwndSource wpfHandle = PresentationSource.FromVisual(this) as HwndSource; 
if (wpfHandle != null) 
{ 
    ElementHost host = System.Windows.Forms.Control.FromChildHandle(wpfHandle.Handle) as ElementHost; 
    if(host != null) 
    { 
     //hosted in ElementHost... 
    } 
}