Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何将EventSetter与窗口样式一起使用?_Wpf_Styles_Window_Eventsetter - Fatal编程技术网

Wpf 如何将EventSetter与窗口样式一起使用?

Wpf 如何将EventSetter与窗口样式一起使用?,wpf,styles,window,eventsetter,Wpf,Styles,Window,Eventsetter,我已经设计了一个窗口来取代标准的Chrome,我想使用EventSetter来处理激活和停用的事件。我收到一个错误“…'Activated'必须是注册的RoutedEvent…”,如下所示: <EventSetter Event="Activated" Handler="Window_Activated"/> 因为这是一个样式的代码隐藏,所以我需要一个实例引用Win。我不知道这是否是实现这一目标的最佳方式,但是 编辑1: 或者,使用IsActive的触发器在xaml中处理它 &

我已经设计了一个窗口来取代标准的Chrome,我想使用EventSetter来处理激活和停用的事件。我收到一个错误“…'Activated'必须是注册的RoutedEvent…”,如下所示:

  <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>