EventSetter 类

定义

以某种样式表示事件资源库。 事件资源库可调用指定的事件处理程序来响应事件。

public ref class EventSetter : System::Windows::SetterBase
public class EventSetter : System.Windows.SetterBase
type EventSetter = class
    inherit SetterBase
Public Class EventSetter
Inherits SetterBase
继承
EventSetter

示例

以下示例在页面级样式中建立一 EventSetter 个。

<StackPanel
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="SDKSample.EventOvw2"
  Name="dpanel2"
  Initialized="PrimeHandledToo"
>
  <StackPanel.Resources>
    <Style TargetType="{x:Type Button}">
      <EventSetter Event="Click" Handler="b1SetColor"/>
    </Style>
  </StackPanel.Resources>
  <Button>Click me</Button>
  <Button Name="ThisButton" Click="HandleThis">
    Raise event, handle it, use handled=true handler to get it anyway.
  </Button>
</StackPanel>

下面显示了示例事件处理程序:

void b1SetColor(object sender, RoutedEventArgs e)
{
  Button b = e.Source as Button;
  b.Background = new SolidColorBrush(Colors.Azure);
}

void HandleThis(object sender, RoutedEventArgs e)
{
  e.Handled=true;
}
Private Sub b1SetColor(ByVal sender As Object, ByVal e As RoutedEventArgs)
  Dim b As Button = TryCast(e.Source, Button)
  b.Background = New SolidColorBrush(Colors.Azure)
End Sub

Private Sub HandleThis(ByVal sender As Object, ByVal e As RoutedEventArgs)
  e.Handled=True
End Sub

注解

事件集程序调用指定的事件处理程序以响应路由事件,这些事件处理程序适用于引用 Style 的所有元素,而不是要求将实例处理程序附加到每个单个元素。 仅 Style.Setters 支持 EventSetter 对象。

只能为路由事件的事件声明事件集器。 可以使用直接路由策略、冒泡事件或隧道事件声明路由事件的事件设置器。

类的 EventSetter 实例通常通过可扩展应用程序标记语言 (XAML) 创建,作为通过 XAML 定义的样式中的对象元素。 还可以从代码实例化 An EventSetter

不能在主题资源字典中包含的样式中使用事件集。 这是因为运行时的主题资源字典通常是松散的二进制 XAML (BAML) 文件,并且没有定义任何范围,其中随附的代码隐藏定义处理程序可以存在。

通过事件集器附加的处理程序在事件的任何类处理程序以及任何实例处理程序之后调用。 因此,如果类处理程序或实例处理程序标记在其参数中处理的事件,则不会调用由事件集器声明的处理程序,除非事件集器专门设置HandledEventsTootrue

事件设置器也可能来自 BasedOn 样式。 在直接样式的处理程序之后,将从指定为 BasedOn 该样式的样式调用事件集器处理程序。

请注意,仅 Style.Setters 支持 EventSetter 对象。 ) 不支持 (TriggerBase 和派生类的 EventSetter触发器。

构造函数

EventSetter()

初始化 EventSetter 类的新实例。

EventSetter(RoutedEvent, Delegate)

使用提供的事件和处理程序参数初始化 EventSetter 类的新实例。

属性

Event

获取或设置此 EventSetter 响应的特定路由事件。

HandledEventsToo

获取或设置一个值,该值确定是否仍然应调用分配给资源库的处理程序,即使事件在其事件数据中被标记为已处理。

Handler

获取或设置对资源库中路由事件的处理程序的引用。

IsSealed

获取一个值,该值指示此对象是否为不可变状态。

(继承自 SetterBase)

方法

CheckSealed()

检查此对象是否为只读且无法更改。

(继承自 SetterBase)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅