HwndHost を使用して C# WPF タブ コントロール内にメモ帳 (私の実際のプロジェクトが埋め込むものではない) をホストするサンプル プロジェクトを作成できました。このため、Hosting external app in WPF window (ところで、DwayneNeed は必要ありません)に返信してくれた方々に感謝します。
この例は、メモ帳のホストされたインスタンスをクリックしてタブを変更しようとするまではうまく機能します。移動先の新しいページにコンテンツがない場合は、他のタブのクリックを受け入れる前に、まず現在のページ セレクターをクリックする必要があります。他のページにコンテンツがある場合 (何か... ボタンだけ)、新しいタブ セレクターを 2 回クリックして移動する必要があります。
私が試したことはうまくいきませんでした:
- AttachThreadInput()を使用して、両方のアプリケーション ウィンドウの入力スレッドを結合します。
this.InvalidateVisual();
タブ コントロールのマウス ダウン イベントを呼び出します。
トリックは何ですか:
TabControl.SelectedIndex
ボタンが押されたときに必要な値にプログラムで変更します。
この問題を回避するには、タブ セレクターの代わりにボタンを使用し (非表示にする)、プログラムでページを変更するだけでよいと思います。これは大したことではありませんが、他の誰かがこの問題に遭遇したことがあるかどうかを知りたいのですが、おそらくそれについての説明があります!
ps私はWPFとC#が初めてです。