我想要实现的是当鼠标悬停在主窗口上时,所有UI元素都应该冻结,我认为可以通过将Window.IsEnabled设置为false来完成,并且在鼠标离开主窗口后,一切都应该恢复正常。
我试图在样式目标窗口中定义属性触发器,但它不起作用。代码是lollow,
<Style.Triggers>
<Trigger Property="Window.IsMouseOver" Value="True">
<Setter Property="Window.IsEnabled" Value="false"/>
</Trigger>
</Style.Triggers>
事实上,这种属性触发器也无法在Grid上运行。谁能解释一下呢?
我还尝试在Window上显式使用MouseEnter和MouseLeave事件,并在处理程序中设置禁用/启用逻辑。这有效。我想知道是否可以在XAML中执行此操作?
答案 0 :(得分:0)
说实话,我不知道为什么你的代码不起作用,我认为它存在某种冲突,但我不知道为什么
无论如何你可以使用事件设定器在XAML中完成它,它不是那么优雅但是它可以工作
<Window.Triggers>
<EventTrigger RoutedEvent="Window.MouseEnter">
<BeginStoryboard>
<Storyboard Name="sb">
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsEnabled" >
<BooleanKeyFrameCollection>
<DiscreteBooleanKeyFrame Value="False" KeyTime="0:0:0:1"></DiscreteBooleanKeyFrame>
</BooleanKeyFrameCollection>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>