現在、WPF の複数の UI スレッドに問題があります。
プロジェクトで使用する必要があるサードパーティのコンポーネントがあります。残念ながら、コンポーネントのすべての機能は UI スレッドで実行する必要があります。コンポーネント自体には、いくつかの長期的な操作があります。これらの操作では、操作の進行状況を示すダイアログを表示したいと考えています。さらに、この操作をキャンセルすることも可能でなければなりません。コンポーネントの長期的なアクションは UI スレッドで実行する必要があるため、プログレス バーの更新はあまり適切ではありません。
この問題を回避するために、ダイアログ ウィンドウを別の UI スレッドに配置しました。現在、進行状況は期待どおりに表示され、非常にスムーズです。ただし、現在、ダイアログはダイアログとして動作しません。別の UI スレッドでホストされているため、メインの UI スレッドではなく、この UI スレッドのユーザー インタラクションのみをブロックします。それにもかかわらず、ダイアログがメイン ウィンドウをブロックするようにします。
Mousehooks を使用して、このようなことを達成することは可能です。ただし、WPF、C# 機能でこれを実現できるかどうかを知りたいです。
したがって、誰かがこの問題で私を助けてくれることを願っています。