Condividi tramite


EventSetter Classe

Definizione

Rappresenta un setter di eventi in uno stile. I setter di eventi richiamano i gestori eventi specificati in risposta agli eventi.

public ref class EventSetter : System::Windows::SetterBase
public class EventSetter : System.Windows.SetterBase
type EventSetter = class
    inherit SetterBase
Public Class EventSetter
Inherits SetterBase
Ereditarietà
EventSetter

Esempio

Nell'esempio seguente viene stabilita una singola EventSetter all'interno di uno stile a livello di pagina.

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

Di seguito sono illustrati i gestori eventi di esempio:

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

Commenti

I setter di eventi richiamano i gestori eventi specificati in risposta a eventi indirizzati, che si applicano a tutti gli elementi che fanno riferimento al Style anziché richiedere di collegare gestori di istanza a ogni singolo elemento. Solo Style.Setters supportano oggetti EventSetter.

È possibile dichiarare solo i setter eventi per gli eventi indirizzati. È possibile dichiarare setter eventi per gli eventi indirizzati con una strategia di routing diretto, eventi di bubbling o eventi di tunneling.

Le istanze della classe EventSetter vengono in genere create tramite XAML (Extensible Application Markup Language), come elemento oggetto all'interno di uno stile definito tramite XAML. È anche possibile creare un'istanza di un EventSetter dal codice.

I setter di eventi non possono essere utilizzati in uno stile contenuto in un dizionario risorse del tema. Ciò è dovuto al fatto che un dizionario risorse del tema in fase di esecuzione è spesso file XAML binari (BAML) separati e non ha alcun ambito definito in cui il code-behind che definisce i gestori può esistere.

I gestori collegati tramite setter di eventi vengono richiamati dopo qualsiasi gestore di classe per un evento e anche dopo qualsiasi gestore di istanze. Di conseguenza, se un gestore di classi o un gestore dell'istanza contrassegna un evento gestito nei relativi argomenti, il gestore dichiarato da un setter di eventi non viene richiamato, a meno che il setter dell'evento non imposti in modo specifico HandledEventsTootrue.

I setter di eventi possono provenire anche da stili di BasedOn. I gestori del setter dell'evento dello stile specificato come BasedOn verranno richiamati dopo i gestori sullo stile immediato.

Si noti che solo Style.Setters supporta gli oggetti EventSetter. I trigger (TriggerBase e le classi derivate) non supportano EventSetter.

Costruttori

EventSetter()

Inizializza una nuova istanza della classe EventSetter.

EventSetter(RoutedEvent, Delegate)

Inizializza una nuova istanza della classe EventSetter utilizzando i parametri dell'evento e del gestore forniti.

Proprietà

Event

Ottiene o imposta l'evento indirizzato specifico a cui risponde questo EventSetter.

HandledEventsToo

Ottiene o imposta un valore che determina se il gestore assegnato al setter deve comunque essere richiamato, anche se l'evento viene contrassegnato come gestito nei dati dell'evento.

Handler

Ottiene o imposta il riferimento a un gestore per un evento indirizzato nel setter.

IsSealed

Ottiene un valore che indica se l'oggetto è in uno stato non modificabile.

(Ereditato da SetterBase)

Metodi

CheckSealed()

Controlla se l'oggetto è di sola lettura e non può essere modificato.

(Ereditato da SetterBase)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche