RoutedEventArgs.OriginalSource Eigenschaft

Definition

Ruft einen Verweis auf das -Objekt ab, das das Ereignis ausgelöst hat. Dies ist häufig ein Vorlagenteil eines Steuerelements und nicht ein Element, das in Ihrer App-Benutzeroberfläche deklariert wurde.

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

Eigenschaftswert

Object

Platform::Object

IInspectable

Das Objekt, das das Ereignis ausgelöst hat.

Hinweise

Wenn ein routingfähiges Ereignis eine Ereignisroute übergibt, ist der Absender nicht mehr dasselbe Objekt wie das Ereignis auslösende Objekt. Stattdessen ist sender das Objekt, an das der aufgerufene Handler angefügt ist.

In einigen Fällen interessieren Sie sich nicht für das sender-Objekt, sondern eher dafür, auf welchem der möglichen untergeordneten Objekte sich der Mauszeiger beim Auslösen eines Zeigerereignisses befindet oder welches Objekt in einer größeren UI beim Drücken einer Taste den Fokus hatte. Für diese Fälle können Sie den Wert der OriginalSource-Eigenschaft verwenden. An allen Punkten in der Route meldet OriginalSource das ursprüngliche Objekt, von dem das Ereignis ausgelöst wurde, und nicht das Objekt, dem der Handler angefügt ist. Bei UIElement-Eingabeereignissen ist das ursprüngliche Objekt jedoch häufig ein Objekt, das nicht direkt im XAML für die UI-Definition auf Seitenebene sichtbar ist. Stattdessen kann das ursprüngliche Quellobjekt ein Vorlagenteil eines Steuerelements sein. Wenn der Benutzer beispielsweise mit dem Mauszeiger auf die äußere Kante eines Button zeigt, ist OriginalSource für die meisten Zeigerereignissen ein Border-Vorlagenbestandteil in Template, nicht Button selbst. Daher können Sie sich nicht immer darauf verlassen, dass OriginalSource ein Objekt darstellt, das Sie speziell in Ihren XAML-Benutzeroberflächendefinitionen auf Seitenebene deklariert haben.

Tipp

Eingabeereignisbubbling ist besonders nützlich, wenn Sie ein vorlagenbasiertes Steuerelement erstellen. Auf jedes Steuerelement, das eine Vorlage besitzt, kann durch seinen Consumer eine neue Vorlage angewendet werden. Der Consumer, der eine Arbeitsvorlage erneut zu erstellen versucht, kann versehentlich in der Standardvorlage deklarierten Ereignisbehandlungscode entfernen. Sie können dennoch eine Ereignisbehandlung auf Steuerelementebene bereitstellen, indem Sie Handler als Teil der OnApplyTemplate-Überschreibung in der Klassendefinition anfügen. Anschließend können Sie die Eingabeereignisse abfangen, die bei der Instanziierung per Bubbling zum Stamm des Steuerelements weitergeleitet werden.

Gilt für:

Weitere Informationen