2

私は 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 が表示されなかったので追加しました。さて、これは何が起こるかです:

ElementHost境界にないWPF

ただし、VS デザイナーにあるものは次のようになります。

VS デザイナー ビュー

ElementHost は、それ自体が Panel 内にある SplitContainer 内にあります (これは、VS デザイナー イメージで選択したものです)。
WPF は、ElementHost のサイズまたは位置に拘束される必要性を感じません (おそらく反抗しているのでしょう)。たとえば、ElementHost の Dock プロパティを Fill に設定すると、WPF は ElementHost のスペースだけでなく、アプリケーション ウィンドウ全体を埋めます。

WPF を独自のウィンドウに配置するか、WinForms アプリを WPF に移植する以外に、何か提案はありますか?

4

1 に答える 1

2

次の行を削除します: this.Controls.Add(elementHost1);

フォームの子のリストに elementHost を読み込んでいます

于 2013-10-25T16:43:51.723 に答える