Condividi tramite


RoutedEventArgs.OriginalSource Proprietà

Definizione

Ottiene un riferimento all'oggetto che ha generato l'evento. Si tratta spesso di una parte di modello di un controllo anziché di un elemento dichiarato nell'interfaccia utente dell'app.

public:
 property Platform::Object ^ OriginalSource { Platform::Object ^ get(); };
IInspectable OriginalSource();
public object OriginalSource { get; }
var object = routedEventArgs.originalSource;
Public ReadOnly Property OriginalSource As Object

Valore della proprietà

Object

Platform::Object

IInspectable

Oggetto che ha generato l'evento.

Commenti

Quando un evento indirizzato aumenta una route di eventi, sender non è più lo stesso oggetto dell'oggetto che genera eventi. È invece sender l'oggetto in cui è associato il gestore richiamato.

In alcuni casi, sender non è interessante e si è invece interessati a informazioni come quale dei possibili oggetti figlio il puntatore si trova quando viene generato un evento di puntatore o quale oggetto in un'interfaccia utente più grande ha premuto lo stato attivo quando un utente ha premuto un tasto di tastiera. Per questi casi, è possibile usare il valore della OriginalSource proprietà . In tutti i punti della route, OriginalSource segnala l'oggetto originale che ha generato l'evento, anziché l'oggetto in cui è associato il gestore. Per gli eventi di input di UIElement, tuttavia, l’oggetto originale spesso non è immediatamente visibile nel codice di definizione dell’interfaccia utente XAML a livello di pagina. Potrebbe invece essere una parte basata su modelli di un controllo. Ad esempio, se l'utente passa il puntatore del mouse sul bordo stesso di un controllo Button, per la maggior parte degli eventi puntatore l'oggetto OriginalSource è una parte del modello Border nel modello, non il pulsante stesso. Pertanto, non puoi sempre fare affidamento su OriginalSource come rappresentare un oggetto dichiarato in modo specifico nelle definizioni dell'interfaccia utente a livello di pagina XAML.

Suggerimento

Il bubbling degli eventi di input è particolarmente utile se si crea un controllo basato su modelli. A un qualsiasi controllo basato su un modello può essere applicato un nuovo modello dal relativo consumer. Il cliente che tenta di ricreare un modello funzionante potrebbe eliminare involontariamente alcuni gestori di evento dichiarati nel modello predefinito. Puoi comunque fornire la gestione dell’evento a livello di controllo collegando i gestori come parte dell’override OnApplyTemplatenella definizione della classe. Quindi puoi recuperare gli eventi di input che eseguono il bubbling sulla radice del controllo nell'istanza.

Si applica a

Vedi anche