4

MSDN やその他の Web サイト ( http://msdn.microsoft.com/en-us/library/ms751797.aspxおよびhttp://www.abhishekshukla.com/wpf/advanced-wpf-part-5-of- 5-interop-in-windows-presentation-foundation/ ) WPF と WinForms コントロールのマルチレベル ハイブリッド ネストはサポートされていません...

WPF ウィンドウに WindowsFormsHost があり、その内部で WPF コントロールが ElementHost でホストされているアプリケーションがあります。この WPF コントロールには、WinFormsHost にもある他の WinForms コントロールが含まれています。要するに、WPF -> WinForms -> WPF -> WinForms です。

これまでのところ、問題はありませんでした。MSDN ページでその小さなメモを見つけた後、私にとってはうまくいくので、そのシナリオで正確に何がサポートされていないのか疑問に思っています。

何か案は?

4

1 に答える 1

2

「サポートされていない」という意味は「自己責任」だと思います。ほとんどのものは機能しますが、機能しないものもあります。結果が許容できるかどうかは、特定のアプリケーションによって異なります。または、いくつかのハッキーな回避策が実施された後、許容できる結果が得られる可能性があります。MSはそれを機能させるためにそこから出て行くつもりはありません。

私は、WinForms-WPF-WinFormsのネストを含むプロジェクトで作業しましたが、一般的には機能しました。WinFormsコンポーネントを書き直さないほど十分です。フォーカスが問題になります。ネストされたコントロールは、フォーカスの獲得/喪失イベントに関連して期待するとおりに動作せず、キーボードのフォーカスがネストされたコントロールでスタックする可能性があります。ホスト要素がフォーカスを持っていると考えるかどうかと、含まれているコントロールがフォーカスを持っていると考えるかどうかには違いがあるかもしれません。したがって、テストをユーザー入力イベントとフォーカスに集中させることをお勧めします。

于 2013-03-06T15:58:12.253 に答える