Wpf 如何将EventSetter与窗口样式一起使用?
我已经设计了一个窗口来取代标准的Chrome,我想使用EventSetter来处理激活和停用的事件。我收到一个错误“…'Activated'必须是注册的RoutedEvent…”,如下所示:Wpf 如何将EventSetter与窗口样式一起使用?,wpf,styles,window,eventsetter,Wpf,Styles,Window,Eventsetter,我已经设计了一个窗口来取代标准的Chrome,我想使用EventSetter来处理激活和停用的事件。我收到一个错误“…'Activated'必须是注册的RoutedEvent…”,如下所示: <EventSetter Event="Activated" Handler="Window_Activated"/> 因为这是一个样式的代码隐藏,所以我需要一个实例引用Win。我不知道这是否是实现这一目标的最佳方式,但是 编辑1: 或者,使用IsActive的触发器在xaml中处理它 &
<EventSetter Event="Activated" Handler="Window_Activated"/>
因为这是一个样式的代码隐藏,所以我需要一个实例引用Win。我不知道这是否是实现这一目标的最佳方式,但是
编辑1:
或者,使用IsActive的触发器在xaml中处理它
<Trigger Property="IsActive" Value="True">
...
</Trigger>
...
能否粘贴完整的样式声明?样式的目标类型可能有问题加载的在框架元素上定义,而激活的在窗口上定义。尝试将TargetType={x:Type Window}设置为样式元素中的属性
编辑:激活的事件不是路由事件。因此,不可能在您的样式中使用它。或者,您可以在代码隐藏中订阅此活动。谢谢奥利。剩下的就是模板和触发器。这就解释了。非常感谢。
<Style x:Key="Window_Cartesia" TargetType="{x:Type Window}">
<Setter Property="WindowStyle" Value="None"/>
<Setter Property="AllowsTransparency" Value="True"/>
<Setter Property="Background" Value="Transparent"/>
<EventSetter Event="Loaded" Handler="Loaded"/>
<EventSetter Event="Activated" Handler="Window_Activated"/>
<EventSetter Event="KeyDown" Handler="KeyDown"/>
AddHandler Win.Activated, AddressOf Activated
AddHandler Win.Deactivated, AddressOf Deactivated
<Trigger Property="IsActive" Value="True">
...
</Trigger>