C# で COM コンポーネントを実装するプログラムを作成しています。このコンポーネントは UI コンポーネントも提供します。コンポーネントへの将来の追加を簡単に実装できるようにするために、WPF を使用して Xaml で UI を記述し、それを ElementHost コントロールでラップして、ハンドルを COM コンシューマーに戻すことにしました。
ここが興味深いところです。要素は win32 タブ コントロールでホストされています。タブを初めて選択すると、正常に読み込まれます。別のタブに切り替えて戻ると、コンポーネントが正しく描画されません。マウスを移動すると、TextBox 要素が描画されますが、UserComponent 全体が再描画されることはありません。
コンポーネントの高さ/幅の値を変更することから、HwndTarget を SoftwareOnly レンダリング モードにすることまで、提案されたすべての解決策を試しました。
この時点で何を試すべきかわからないので、提案は大歓迎です。Windows フォームを使用せずにこれを行いたいと思っています。これの将来のメンテナーは最高のプログラマーではなく、手動でフォームをレイアウトしてコード ビハインドの値。