2016-10-07 6 views
1

Je montre une fenêtre WPF exe dans une autre application WPF utilisant un hôte winform.Fenêtre WPF dans un panneau WinformHost

J'ai créé un panneau dans l'application principale et l'ai défini comme enfant de winformhost.

mHostingPanel = new System.Windows.Forms.Panel() 
      { 
       BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle 
      };     


      mWinformHost = new WindowsFormsHost(); 
      mWinformHost.Child = mHostingPanel; 

puis de démarrer l'autre processus de fenêtre et de définir le panneau d'hébergement en tant que parent.

WindowsAPI.SetParent(mProcess.MainWindowHandle, mHostingPanel.Handle); 

Ma question est de savoir si je lance l'application, qui sera le rendu ma fenêtre WPF enfant dont le parent est un WinForm panel.Will ce soit direct X ou le contexte GDI du Groupe spécial?

De plus, si je règle Allowtransparency = True sur l'application WPF enfant, l'interface utilisateur n'apparaît pas dans le panneau d'hébergement.

+0

Ce qui est mal, et pas nécessairement une mauvaise façon! – tolanj

+0

Je ne pense pas que prendre possession de la fenêtre aura un impact sur le rendu wpf. Je regarderais cependant ceci: https://blogs.msdn.microsoft.com/oldnewthing/20130412-00/?p=4683/ – tolanj

+0

@tolanj: Si vous lisez cette entrée de blog vous ne pouvez pas arriver à la conclusion, que ceci n'étaient pas nécessairement mauvais. D'une manière très, ** très ** mauvaise. Cette autre demande n'est certainement pas prête à être re-parenté. Si c'était le cas, ce serait un contrôle ActiveX. – IInspectable

Répondre