1

現在、WPF の複数の UI スレッドに問題があります。

プロジェクトで使用する必要があるサードパーティのコンポーネントがあります。残念ながら、コンポーネントのすべての機能は UI スレッドで実行する必要があります。コンポーネント自体には、いくつかの長期的な操作があります。これらの操作では、操作の進行状況を示すダイアログを表示したいと考えています。さらに、この操作をキャンセルすることも可能でなければなりません。コンポーネントの長期的なアクションは UI スレッドで実行する必要があるため、プログレス バーの更新はあまり適切ではありません。

この問題を回避するために、ダイアログ ウィンドウを別の UI スレッドに配置しました。現在、進行状況は期待どおりに表示され、非常にスムーズです。ただし、現在、ダイアログはダイアログとして動作しません。別の UI スレッドでホストされているため、メインの UI スレッドではなく、この UI スレッドのユーザー インタラクションのみをブロックします。それにもかかわらず、ダイアログがメイン ウィンドウをブロックするようにします。

Mousehooks を使用して、このようなことを達成することは可能です。ただし、WPF、C# 機能でこれを実現できるかどうかを知りたいです。

したがって、誰かがこの問題で私を助けてくれることを願っています。

4

1 に答える 1

1

問題の解決に役立つ興味深い記事を見つけました。

ホストビジュアル

于 2013-06-05T08:23:32.600 に答える