EventSetter Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
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) |