Bagikan melalui


RoutedEventArgs.OriginalSource Properti

Definisi

Mendapatkan referensi ke objek yang menaikkan peristiwa. Ini sering menjadi bagian templat dari kontrol daripada elemen yang dideklarasikan di antarmuka pengguna aplikasi Anda.

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

Nilai Properti

Object

Platform::Object

IInspectable

Objek yang menaikkan peristiwa.

Keterangan

Saat peristiwa yang dirutekan menggelembungkan rute peristiwa, pengirim tidak lagi menjadi objek yang sama dengan objek penggalangan peristiwa. Sebaliknya, pengirim adalah objek tempat handler yang sedang dipanggil terpasang.

Dalam beberapa kasus, pengirim tidak menarik, dan Anda malah tertarik pada info seperti objek turunan mana yang mungkin ditujukan ketika peristiwa penunjuk diaktifkan, atau objek mana dalam UI yang lebih besar yang memegang fokus saat pengguna menekan tombol keyboard. Untuk kasus ini, Anda dapat menggunakan nilai properti OriginalSource. Di semua titik rute, OriginalSource melaporkan objek asli yang menembakkan peristiwa, bukan objek tempat handler dilampirkan. Namun, untuk peristiwa input UIElement , objek asli tersebut sering kali merupakan objek yang tidak segera terlihat dalam definisi UI tingkat halaman XAML. Sebaliknya, objek sumber asli tersebut mungkin merupakan bagian dari kontrol yang ditemplak. Misalnya, jika pengguna mengarahkan penunjuk ke bagian paling tepi Tombol, untuk sebagian besar peristiwa pointer, OriginalSource adalah bagian templat Batas dalam Templat, bukan Tombol itu sendiri. Oleh karena itu, Anda tidak selalu dapat mengandalkan OriginalSource yang mewakili objek yang Anda deklarasikan secara khusus dalam definisi UI tingkat halaman XAML Anda.

Tip

Peristiwa input menggelembung sangat berguna jika Anda membuat kontrol templat. Kontrol apa pun yang memiliki templat dapat memiliki templat baru yang diterapkan oleh konsumennya. Konsumen yang mencoba membuat ulang templat kerja mungkin secara tidak sengaja menghilangkan beberapa penanganan peristiwa yang dideklarasikan dalam templat default. Anda masih dapat memberikan penanganan peristiwa tingkat kontrol dengan melampirkan handler sebagai bagian dari penimpaan OnApplyTemplate dalam definisi kelas. Kemudian Anda dapat menangkap peristiwa input yang menggelembung hingga akar kontrol pada instantiasi.

Berlaku untuk

Lihat juga