Bagikan melalui


FrameworkElement.Name Properti

Definisi

Mendapatkan atau mengatur nama identifikasi elemen. Nama ini menyediakan referensi sehingga kode di belakang, seperti kode penanganan aktivitas, dapat merujuk ke elemen markup setelah dibangun selama pemrosesan oleh prosesor XAML.

public:
 property System::String ^ Name { System::String ^ get(); void set(System::String ^ value); };
[System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)]
public string Name { get; set; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)>]
member this.Name : string with get, set
Public Property Name As String

Nilai Properti

Nama elemen. Defaultnya adalah string kosong.

Penerapan

Atribut

Contoh

Contoh berikut mengatur Name properti dalam kode, lalu mendaftarkan nama ke dalam yang baru dibuat NameScope dengan memanggil RegisterName. Teknik yang diilustrasikan di sini adalah persyaratan untuk beranimasi dengan papan cerita, karena papan cerita memerlukan penargetan oleh Name, dan tidak dapat ditargetkan oleh referensi objek.

//  
// Create a Rectangle
//
Rectangle myRectangle = new Rectangle();
myRectangle.Width = 200;
myRectangle.Height = 200;
myRectangle.Name = "myRectangle";
this.RegisterName(myRectangle.Name, myRectangle);
'  
' Create a Rectangle
'
Dim myRectangle As New Rectangle()
myRectangle.Width = 200
myRectangle.Height = 200
myRectangle.Name = "myRectangle"
Me.RegisterName(myRectangle.Name, myRectangle)

Keterangan

Penggunaan properti ini yang paling umum adalah menentukan nama elemen XAML sebagai atribut dalam markup.

Properti ini pada dasarnya menyediakan properti kenyamanan tingkat kerangka kerja WPF untuk mengatur XAML x:Name Directive.

Nama harus unik dalam namescope. Untuk informasi selengkapnya, lihat Namescope WPF XAML.

Name Mendapatkan jika Anda membuat elemen dalam kode tidak umum. Jika Anda sudah memiliki referensi yang sesuai dalam kode, Anda hanya dapat memanggil metode dan properti pada referensi elemen dan umumnya tidak akan membutuhkan Name. Pengecualian untuk ini adalah jika Name string memiliki beberapa arti yang kelebihan beban, misalnya jika berguna untuk menampilkan nama tersebut di UI. Name Mengatur dari code-behind jika aslinya Name diatur dari markup juga tidak disarankan, dan mengubah properti setelah memuat XAML tidak akan mengubah referensi objek asli. Referensi objek dibuat hanya ketika namescope yang mendasar dibuat secara eksplisit selama penguraian. Anda harus secara khusus memanggil RegisterName untuk membuat perubahan efektif pada Name properti elemen yang sudah dimuat.

Salah satu kasus penting di mana pengaturan Name dari kode penting adalah ketika mendaftarkan nama untuk elemen yang akan dijalankan oleh papan cerita, sehingga dapat dirujuk pada waktu proses. Sebelum Anda dapat mendaftarkan nama, mungkin juga perlu membuat instans dan menetapkan NameScope instans. Lihat bagian Contoh, atau Ringkasan Papan Cerita.

Pengaturan Name dari kode memiliki aplikasi terbatas, tetapi mendapatkan elemen dengan Name lebih umum. Salah satu skenario tertentu adalah jika aplikasi Anda mendukung model navigasi di mana halaman dimuat ulang ke dalam aplikasi, dan kode run time belum tentu didefinisikan untuk halaman tersebut. Metode FindNameutilitas , yang tersedia dari apa pun FrameworkElement, dapat menemukan elemen apa pun dengan Name di pohon logis untuk elemen tersebut, mencari pohon secara rekursif seperlunya. Atau Anda dapat menggunakan FindLogicalNode metode statis , LogicalTreeHelperyang juga mengambil Name string sebagai argumen.

Biasanya menggunakan elemen akar (Window, Page misalnya) mengimplementasikan antarmuka INameScope. Implementasi antarmuka ini diharapkan untuk menegakkan bahwa nama tidak ambigu dalam cakupannya. Elemen akar yang menentukan antarmuka ini juga menentukan batas perilaku namescope untuk semua API terkait.

Properti Name ini juga berfungsi sebagai pengidentifikasi untuk proses lain. Misalnya, model otomatisasi WPF akan digunakan Name sebagai AutomationId untuk klien dan penyedia.

Nilai string yang digunakan untuk Name memiliki beberapa batasan, seperti yang diberlakukan oleh x:Name Directive yang mendasar yang ditentukan oleh spesifikasi XAML. Terutama, Name harus dimulai dengan huruf atau karakter garis bawah (_), dan hanya boleh berisi huruf, digit, atau garis bawah. Untuk informasi selengkapnya, lihat Namescope WPF XAML.

Name adalah salah satu dari sedikit properti dependensi yang tidak dapat dianimasikan (IsAnimationProhibited dalam true metadata), karena nama itu sendiri sangat penting untuk menargetkan animasi. Pengikatan Name data secara teknis dimungkinkan, tetapi merupakan skenario yang sangat jarang karena terikat Name data tidak dapat melayani tujuan utama properti: untuk menyediakan titik koneksi pengidentifikasi untuk kode di belakang.

Informasi Properti Dependensi

Item Nilai
Bidang pengidentifikasi NameProperty
Properti metadata diatur ke true IsAnimationProhibited

Berlaku untuk