私は WinForms アプリケーションを構築しており、その中に WPF アプリを含めようとしています。問題の WPF は、HighCore によって作成されたログ ビューアーであり、ここで見つけることができます: WPF を使用したログ ビューアーの実装。すべてをセットアップする方法については、この
チュートリアル
に従いました。注意すべきことの 1 つは、VS で ElementHost のオプションを展開すると、[ホストされているコンテンツの選択] ドロップダウンにログ ビューアーが表示されないことです。ただし、ログ ビューアーは私のプロジェクトに含まれているため ([プロジェクト] メニューから作成しました)、最終的に次のコードを少し使用しました。
public MainForm()
{
InitializeComponent();
logViewer tslv = new logViewer();
elementHost.Child = tslv;
this.Controls.Add(elementHost1);
elementHost.BringToFront();
}
BringToFront()
初めてコードを実行したときに WPF が表示されなかったので追加しました。さて、これは何が起こるかです:
ただし、VS デザイナーにあるものは次のようになります。
ElementHost は、それ自体が Panel 内にある SplitContainer 内にあります (これは、VS デザイナー イメージで選択したものです)。
WPF は、ElementHost のサイズまたは位置に拘束される必要性を感じません (おそらく反抗しているのでしょう)。たとえば、ElementHost の Dock プロパティを Fill に設定すると、WPF は ElementHost のスペースだけでなく、アプリケーション ウィンドウ全体を埋めます。
WPF を独自のウィンドウに配置するか、WinForms アプリを WPF に移植する以外に、何か提案はありますか?