2016-10-07 90 views
1

我在使用winform主機的另一個WPF應用程序內顯示WPF exe窗口。WinformHost面板內的WPF窗口

我在主應用程序中創建了一個面板,並將其設置爲winformhost的子面板。

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


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

然後我啓動其他窗口進程並將主機面板設置爲父級。

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

我的問題是,如果我啓動應用程序,他們將呈現我的孩子WPF,其父母爲一個winform panel.Will它是直接-X或面板的GDI上下文窗口?

此外,如果我在子WPF應用程序上設置Allowtransparency = True,UI不會顯示在主機面板中。

+0

這是邪惡的,而不一定是壞的方式! – tolanj

+0

我不認爲取得窗口的所有權將會影響wpf渲染。我會看看這個雖然:https://blogs.msdn.microsoft.com/oldnewthing/20130412-00/?p=4683/ – tolanj

+0

@tolanj:如果你閱讀該博客條目,你不可能得出結論,這不一定是邪惡的。以非常**非常糟糕的方式。這個其他應用程序肯定不準備重新參與。如果是,它將是一個ActiveX控件。 – IInspectable

回答