4

C# で COM コンポーネントを実装するプログラムを作成しています。このコンポーネントは UI コンポーネントも提供します。コンポーネントへの将来の追加を簡単に実装できるようにするために、WPF を使用して Xaml で UI を記述し、それを ElementHost コントロールでラップして、ハンドルを COM コンシューマーに戻すことにしました。

ここが興味深いところです。要素は win32 タブ コントロールでホストされています。タブを初めて選択すると、正常に読み込まれます。別のタブに切り替えて戻ると、コンポーネントが正しく描画されません。マウスを移動すると、TextBox 要素が描画されますが、UserComponent 全体が再描画されることはありません。

コンポーネントの高さ/幅の値を変更することから、HwndTarget を SoftwareOnly レンダリング モードにすることまで、提案されたすべての解決策を試しました。

この時点で何を試すべきかわからないので、提案は大歓迎です。Windows フォームを使用せずにこれを行いたいと思っています。これの将来のメンテナーは最高のプログラマーではなく、手動でフォームをレイアウトしてコード ビハインドの値。

4

1 に答える 1

0

そのような問題はまだありません。ホスティング タブに切り替えるときに、ホスティング ラッパーまたは HwndSource を強制的に更新またはフォーカス (メソッド) してみてください。

于 2013-01-14T09:16:16.797 に答える