RoutedEventArgs.OriginalSource 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
會得到一個指向引發事件的物件的參考。 這通常是控制項中的範本部分,而非你應用程式介面中聲明的元素。
public:
property Platform::Object ^ OriginalSource { Platform::Object ^ get(); };
IInspectable OriginalSource();
public object OriginalSource { get; }
var object = routedEventArgs.originalSource;
Public ReadOnly Property OriginalSource As Object
屬性值
那個引發事件的物件。
備註
當路由事件冒泡時,事件路由不再 sender 是事件發起物件的同一物件。 相反地, sender 是被呼叫的處理器所附加的物件。
有時候, sender 這並不有趣,你反而想知道指標事件觸發時指標覆蓋在哪個可能的子物件上,或是使用者按下鍵盤鍵時,較大介面中哪個物件是焦點。 在這種情況下,你可以利用房產的 OriginalSource 價值來評估。 在路線上的所有點,回報 OriginalSource 的是觸發事件的原始物件,而非處理器所連接的物件。 然而,對於 UIElement 的輸入事件,該原始物件通常是頁面層級 UI 定義 XAML 中無法立即顯示的物件。 相反地,該原始來源物件可能是控制項的範本化部分。 例如,如果使用者將指標懸停在按鈕的最邊緣,大多數指標事件中,OriginalSource模板中的邊框模板部分是,而非按鈕本身。 因此,你不能總是依賴 OriginalSource 你在 XAML 頁面層級 UI 定義中明確宣告的物件。
Tip
輸入事件冒泡在建立模板控制項時特別有用。 任何具有範本的控制項都可以由其取用者套用新的範本。 嘗試重新建立工作範本的取用者可能會無意中消除預設範本中宣告的某些事件處理。 你仍然可以透過在類別定義中的 OnApplyTemplate 覆寫中附加處理器來提供控制層級事件處理。 然後,您可以在物件實例化時攔截冒泡至控制項根的輸入事件。