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 der 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 Routingereignis eine Ereignisroute übergibt, sender ist nicht mehr dasselbe Objekt wie das Ereignis auslösende Objekt. Stattdessen ist das Objekt, sender in dem der aufgerufene Handler angefügt ist.

In einigen Fällen ist nicht interessant, sender und Sie interessieren sich stattdessen für Informationen, z. B. für welche der möglichen untergeordneten Objekte der Zeiger ist, wenn ein Zeigerereignis ausgelöst wurde, oder welches Objekt in einer größeren Benutzeroberfläche den Fokus hat, wenn ein Benutzer eine Tastaturtaste gedrückt hat. In diesen Fällen können Sie den Wert der OriginalSource -Eigenschaft verwenden. Gibt an jedem Punkt auf der Route das ursprüngliche Objekt an, OriginalSource das das Ereignis ausgelöst hat, und nicht das Objekt, in 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 den Mauszeiger über den Rand einer Schaltfläche bewegt, handelt es sich bei den meisten Zeigerereignissen OriginalSource um einen Rahmenvorlagenteil in der Vorlage, nicht um die Schaltfläche selbst. Daher können Sie sich nicht immer auf OriginalSource die Darstellung eines Objekts verlassen, das Sie speziell in Ihren XAML-Benutzeroberflächendefinitionen auf Seitenebene deklariert haben.

Tipp

Das Bubbling von Eingabeereignissen ist besonders nützlich, wenn Sie ein Steuerelement mit Vorlagen 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