我的RIA启用SL应用程序有点问题。
背景:
相关部分如下:
当任何数据操作(即加载, 提交,登录等)到位,然后 一个BusyOverlay控件(我写的) 禁用RootVisual并提供 视觉效果。当。。。的时候 操作完成,然后设置 RootVisual.IsEnabled无论如何 以前。它的工作原理就像 ChildWindow说到 与RootVisual的互动(至少 据我所知。)
RootVisual中的一个元素(本身就是UserControl)是一个隐藏菜单。它是一个包含实际菜单的边框。它在Resources中有两个故事板(增加和减少它的宽度 - 没什么特别的,它们就像你想象的那样简单),边框本身也处理了MouseEnter和MouseLeave。处理程序启动其中一个故事板,只需一行代码。我没有提供任何样本,因为没有任何有趣的事情发生,它只是膨胀的帖子。如果您认为有必要,请告诉我,我将发布相关的XAML和C#代码。
问题:
禁用RootVisual时,不会触发Border.MouseLeave事件。当用户单击加载初始数据的菜单中的某些内容,然后将鼠标移到菜单外时,它不会隐藏。有没有办法优雅地解决这个问题? CaptureMouse是不可能的(它需要鼠标左键关闭)。我能想到的是在处理静态类的数据操作中发布一个“OperationFinished”事件,并在UserControl中处理RootVisual,但我觉得它很难看,不适合我的架构。有什么我想念的吗?
我会对任何解决方案和建议表示感谢。