2016-10-07 4 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; 

他のウィンドウプロセスを開始して、親としてホスティングパネルを設定します。私は親、それが直接-XまたはパネルのGDIコンテキストことpanel.Will Winフォームである私の子供WPFウィンドウをレンダリングされたアプリケーションを、起動した場合

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

私の質問はありますか?

また、子WPFアプリケーションでAllowtransparency = Trueを設定すると、UIがホストパネルに表示されません。

+0

これは悪い方法では必ずしも悪、とではありません! – tolanj

+0

私は、ウィンドウの所有権を取ることがwpfレンダリングにまったく影響しないとは思わない。私はこれを見ています:https://blogs.msdn.microsoft.com/oldnewthing/20130412-00/?p=4683/ – tolanj

+0

@tolanj:あなたが結論に到着することはできませんそのブログのエントリを読む場合は、これは必ずしも悪くはなかった。非常に、**非常に**悪い方法で。その他のアプリケーションは、確かに再親子化の準備ができていません。それがあれば、ActiveXコントロールになります。 – IInspectable

答えて

関連する問題