次の方法で共有


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

次の例では、ページ レベルのスタイル内で 1 つの 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 を参照するすべての要素に適用されます。 EventSetter オブジェクト Style.Setters サポートされているだけです。

ルーティング イベントであるイベントのイベント セッターのみを宣言できます。 ダイレクト ルーティング戦略、バブル イベント、またはトンネリング イベントを使用して、ルーティング イベントのイベント セッターを宣言できます。

EventSetter クラスのインスタンスは、通常、XAML で定義されたスタイル内のオブジェクト要素として、Extensible Application Markup Language (XAML) を使用して作成されます。 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)

適用対象

こちらもご覧ください