RoutedEventArgs.OriginalSource 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得引發事件之 物件的參考。 這通常是控制項的範本部分,而不是在應用程式 UI 中宣告的專案。
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
並不有趣,而您反而對資訊感興趣,例如指標在引發指標事件時,指標位於哪一個可能子物件,或在使用者按下鍵盤按鍵時,較大型 UI 中的哪個物件會保留焦點。 在這些情況下,您可以使用 屬性的值 OriginalSource
。 在路由的所有點上, OriginalSource
報告引發事件的原始物件,而不是附加處理常式的物件。 不過,對於 UIElement 輸入事件來說,該原始物件通常是無法立即在頁面層級的 UI 定義 XAML 中所能看到的物件。 該原始來源物件可能是控制項的範本組件。 例如,如果使用者將指標停留在Button的邊緣上,大部分的指標事件 OriginalSource
都是Template中的Border範本元件,而不是Button本身。 因此,您無法一律依賴 OriginalSource
代表您在 XAML 頁面層級 UI 定義中特別宣告的物件。
提示
如果您要建立樣板化控制項,輸入事件反升特別有用。 控制項的取用者可以為含有範本的任一控制項套用新範本。 正嘗試重建工作範本的取用者,可能會不慎刪除在預設範本中宣告的某些事件處理。 您仍然可以提供控制項層級的事件處理,方法是將處理常式附加為類別定義中的 OnApplyTemplate 覆寫的一部分。 接著,您可以攔截具現化時向上反昇至控制項根目錄的輸入事件。
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應