RoutedEventArgs.OriginalSource Proprietà
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.
Ottiene un riferimento all'oggetto che ha generato l'evento. Questa è spesso una parte del modello di un controllo anziché 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à
Oggetto che ha generato l'evento.
Commenti
Quando un evento instradato aumenta una route evento, il mittente non è più lo stesso oggetto dell'oggetto che genera eventi. sender è invece l’oggetto in cui viene associato il gestore richiamato.
In alcuni casi l’oggetto sender non è un dato rilevante e hai invece bisogno di informazioni diverse, ad esempio l’oggetto figlio su cui è posizionato il mouse oppure l’oggetto che ha lo stato attivo quando viene premuto un tasto. Per queste situazioni, puoi usare il valore della proprietà OriginalSource. OriginalSource segnala in tutti i punti della route l’oggetto originale che ha generato l’evento, anziché l’oggetto in cui viene 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. Se ad esempio l’utente posiziona il puntatore esattamente sul bordo di un controllo Button, per la maggior parte degli eventi relativi al puntatore OriginalSource è una parte modello Border di Template e non il controllo Button stesso. Pertanto, non è sempre possibile basarsi su OriginalSource che rappresenta un oggetto dichiarato in modo specifico nelle definizioni dell'interfaccia utente a livello di pagina XAML.
Suggerimento
Il bubbling dell'evento di input è particolarmente utile se si sta creando un controllo con 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.