EventSetter 類別

定義

表示樣式中的事件 Setter。 事件 Setter 會叫用指定的事件處理常式以回應事件。

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

備註

事件 setter 會叫用指定的事件處理常式以回應路由事件,而此事件會套用至參考 Style 的所有元素,而不需要您將實例處理常式附加至每個個別專案。 僅 Style.Setters 支援 EventSetter 物件。

您只能針對路由事件的事件宣告事件 setter。 您可以使用直接路由策略、反升事件或通道事件來宣告路由事件的事件設定器。

類別的 EventSetter 實例通常是透過 Extensible Application Markup Language (XAML) 建立,做為透過 XAML 定義之樣式中的物件專案。 EventSetter也可能從程式碼具現化。

事件設定器不能用在主題資源字典中包含的樣式中。 這是因為執行時間的主題資源字典通常是鬆散的二進位 XAML (BAML) 檔案,而且沒有定義處理常式隨附的程式碼後置可以存在的任何範圍。

透過事件 setter 附加的處理常式會在事件的任何類別處理常式之後以及任何實例處理常式之後叫用。 因此,如果類別處理常式或實例處理常式標示在其引數中處理的事件,則不會叫用事件 setter 所宣告的處理常式,除非事件 setter 特別設定 HandledEventsToo true

事件設定器也可能來自 BasedOn 樣式。 從指定 BasedOn 為 的樣式叫用事件 setter 處理常式,將在立即樣式的處理常式之後叫用。

請注意,只 Style.Setters 支援 EventSetter 物件。 ) 不支援 (TriggerBase 和衍生類別的 EventSetter 觸發程式。

建構函式

EventSetter()

初始化 EventSetter 類別的新執行個體。

EventSetter(RoutedEvent, Delegate)

使用提供的事件和處理常式參數,初始化 EventSetter 類別的新執行個體。

屬性

Event

取得或設定這個 EventSetter 回應的特定路由事件。

HandledEventsToo

取得或設定值,這個值決定是否仍應叫用指派給 setter 的處理常式,即使事件已在其事件資料中標記為已處理。

Handler

取得或設定 setter 中路由事件之處理常式的參考。

IsSealed

取得值,指出這個物件的狀態是否不可變。

(繼承來源 SetterBase)

方法

CheckSealed()

檢查這個物件是否為唯讀而無法變更。

(繼承來源 SetterBase)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱