RIA 対応の SL アプリケーションに少し問題があります。
背景:
関連部分は次のようになります。
データ操作 (読み込み、送信、ログインなど) が行われると、BusyOverlay コントロール (私が作成したもの) が RootVisual を無効にし、視覚効果を提供します。操作が完了すると、RootVisual.IsEnabled が以前のものに設定されます。RootVisual とのやり取りに関しては、ChildWindow と同じように機能します (少なくとも私が知る限り)。
RootVisual (それ自体が UserControl) の要素の 1 つは非表示メニューです。実際のメニューを含む枠です。リソースには 2 つのストーリーボードがあり (幅を増減します。空想的なものではなく、想像できるほどシンプルです)、ボーダー自体には MouseEnter と MouseLeave が処理されます。ハンドラーは、ストーリーボードの 1 つを 1 行のコードだけで開始します。興味深いことは何もないため、サンプルは提供しません。投稿が肥大化するだけです。必要だと思われる場合は、お知らせください。関連する XAML および C# コードを投稿します。
問題:
RootVisual が無効になっている場合、Border.MouseLeave イベントは発生しません。ユーザーが初期データをロードするメニュー内の何かをクリックし、マウスをメニューの外に移動すると、非表示になりません。この問題をエレガントに解決する方法はありますか? CaptureMouse は論外です (マウスの左ボタンを押している必要があります)。私が考えることができるのは、静的クラスを処理するデータ操作で「OperationFinished」イベントを発行し、それを RootVisual である UserControl で処理することだけですが、それは醜く、私のアーキテクチャには適合しないと思います。足りないものはありますか?
解決策と提案に感謝します。