Wpf 如何';冻结&x27;鼠标悬停在上方时的UI(主窗口)
我想要实现的是,当鼠标悬停在主窗口上时,所有UI元素都应该冻结,我认为可以通过将window.IsEnabled设置为false来实现,当鼠标离开主窗口后,一切都应该恢复正常 我尝试在样式目标窗口中定义属性触发器,但它不起作用。代码很低Wpf 如何';冻结&x27;鼠标悬停在上方时的UI(主窗口),wpf,triggers,freeze,ismouseover,Wpf,Triggers,Freeze,Ismouseover,我想要实现的是,当鼠标悬停在主窗口上时,所有UI元素都应该冻结,我认为可以通过将window.IsEnabled设置为false来实现,当鼠标离开主窗口后,一切都应该恢复正常 我尝试在样式目标窗口中定义属性触发器,但它不起作用。代码很低 <Style.Triggers> <Trigger Property="Window.IsMouseOver" Value="True"> <Setter Property="Window.IsEnabled
<Style.Triggers>
<Trigger Property="Window.IsMouseOver" Value="True">
<Setter Property="Window.IsEnabled" Value="false"/>
</Trigger>
</Style.Triggers>
事实上,这种属性触发器在网格上也不起作用。有人能解释一下吗
我还尝试在窗口上显式使用MouseEnter和MouseLeave事件,并在处理程序中设置禁用/启用逻辑。这很有效。我想知道是否有可能在XAML中实现这一点?老实说,我不知道为什么您的代码不起作用,我认为它会出现某种冲突,但我不知道为什么 不管怎样,您可以使用eventsetter在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>
Hmm。。。。如果您完全禁用输入,请不要忘记禁用触摸屏和键盘!如何禁用触摸和键盘?我的观点是,如果我想使用键盘与您的程序交互,我可能可以使用alt+tab切换到您的程序,因为您只响应鼠标事件。您应该尝试检测任何输入焦点,但即使如此,如果您必须创建这种奇怪的行为。。。你可能想重新考虑你的设计?