Aracılığıyla paylaş


x:Name özniteliği

Örnek alınan nesneye arka planda veya genel koddan erişim için nesne öğelerini benzersiz olarak tanımlar. Bir yedekleme programlama modeline uygulandıktan sonra , x:Name bir oluşturucu tarafından döndürülen nesne başvurularını tutan değişkene eşdeğer olarak kabul edilebilir.

XAML öznitelik kullanımı

<object x:Name="XAMLNameValue".../>

XAML değerleri

Süre Description
XAMLNameValue XamlName dil bilgisi kısıtlamalarına uyan bir dize.

XamlName dilbilgisi

Bu XAML uygulamasında anahtar olarak kullanılan bir dize için normatif dil bilgisi aşağıdadır:

XamlName ::= NameStartChar (NameChar)*
NameStartChar ::= LetterCharacter | '_'
NameChar ::= NameStartChar | DecimalDigit
LetterCharacter ::= ('a'-'z') | ('A'-'Z')
DecimalDigit ::= '0'-'9'
CombiningCharacter::= none
  • Karakterler alt ASCII aralığıyla ve daha özel olarak Roma alfabesi büyük ve küçük harf, rakam ve alt çizgi (_) karakteriyle sınırlıdır.
  • Unicode karakter aralığı desteklenmiyor.
  • Ad bir rakamla başlayamaz. Bazı araç uygulamaları, kullanıcı bir dizeyi ilk karakteri olarak bir rakamla sağlarsa veya araç, rakam içeren diğer değerlere dayanarak x:Name değerlerini otomatik olarak oluşturursa, bu durumda bu dizeye bir alt çizgi (_) ekler.

Açıklamalar

Belirtilen x:Name , XAML işlendiğinde temel kodda oluşturulan bir alanın adı olur ve bu alan nesneye bir başvuru içerir. Bu alanı oluşturma işlemi, bir XAML dosyasının kısmi sınıflarını ve arka planındaki kod sınıflarını birleştirmekle de sorumlu olan MSBuild hedef adımları tarafından gerçekleştirilir. Bu davranış mutlaka XAML dili belirtilmemiştir; XAML için Evrensel Windows Platformu (UWP) programlamasının, programlama ve uygulama modellerinde x:Name kullanmak için uyguladığı özel uygulamadır.

Tanımlanan her x:Name , bir XAML ad kapsamı içinde benzersiz olmalıdır. Genellikle, XAML ad kapsamı yüklenen bir sayfanın kök öğe düzeyinde tanımlanır ve tek bir XAML sayfasında bu öğenin altındaki tüm öğeleri içerir. Ek XAML ad kapsamları, bu sayfada tanımlanan herhangi bir denetim şablonu veya veri şablonu tarafından tanımlanır. Çalışma zamanında, uygulanan bir denetim şablonundan oluşturulan nesne ağacının kökü için bir XAML ad kapsamı oluşturulur ve ayrıca XamlReader.Load çağrısından oluşturulan nesne ağaçları için de başka bir XAML ad kapsamı yaratılır. Daha fazla bilgi için XAML ad kapsamları bölümüne bakın.

Tasarım araçları genellikle tasarım yüzeyine eklendiklerinde öğeler için x:Name değerlerini otomatik olarak oluşturur. Otomatik oluşturma düzeni, kullandığınız tasarımcıya bağlı olarak değişir, ancak tipik bir düzen, öğesini destekleyen sınıf adıyla başlayan bir dize ve ardından bir ilerleyen tamsayı oluşturmaktır. Örneğin, tasarımcıya ilk Button öğesini tanıtırsanız, XAML'de bu öğenin "Button1" x:Name öznitelik değerine sahip olduğunu görebilirsiniz.

x:Name , XAML özellik öğesi söz diziminde veya SetValue kullanılarak kodda ayarlanamaz. x:Name yalnızca öğelerde XAML özniteliği söz dizimi kullanılarak ayarlanabilir.

Uyarı

Özellikle C++/CX uygulamaları için, bir XAML dosyasının veya sayfasının kök öğesi için x:Name başvurusu için bir yedekleme alanı oluşturulmaz. Arka plandaki C++ koddan kök nesneye başvurmanız gerekiyorsa, diğer API'leri veya ağaç geçişini kullanın. Örneğin, bilinen bir adlandırılmış alt öğe için FindName'i çağırabilir ve ardından Parent öğesini çağırabilirsiniz.

x:Name ve diğer Ad özellikleri

XAML'de kullanılan bazı türlerin Name adlı bir özelliği de vardır. Örneğin, FrameworkElement.Name ve TextElement.Name.

Name bir öğede ayarlanabilir özellik olarak kullanılabiliyorsa, Name ve x:Name XAML'de birbirinin yerine kullanılabilir, ancak aynı öğede her iki öznitelik de belirtilirse hata oluşur. Name özelliği bulunduğu ancak salt okunur olduğu durumlar da vardır (örneğin, VisualState.Name). Böyle bir durumda, XAML'de bu öğeyi adlandırmak için her zaman x:Name kullanırsınız ve daha az yaygın olan bazı kod senaryolarında salt okunur Name mevcut olur.

NotFrameworkElement.Name genellikle başlangıçta x:Name ile ayarlanan değerleri değiştirmenin bir yolu olarak kullanılmamalıdır, ancak bu genel kuralın özel durumları olan bazı senaryolar vardır. Tipik senaryolarda, XAML ad kapsamlarının oluşturulması ve tanımı bir XAML işlemci işlemidir. Çalışma zamanında FrameworkElement.Name değiştirmek, tutarsız bir XAML ad kapsamı / özel alan isimlendirme uyumuna neden olabilir ve bunun kod arka planınızda izlenmesi zor olabilir.

x:Name ve x:Key

x:Name , bir ResourceDictionary içindeki öğelere öznitelik olarak uygulanarak x:Key özniteliğinin yerine geçilebilir. (Bir ResourceDictionary içindeki tüm öğelerin x:Key veya x:Name özniteliğine sahip olması gereken bir kuraldır.) Bu, Görsel Taslak animasyonları için yaygındır. Daha fazla bilgi için ResourceDictionary ve XAML kaynak başvuruları bölümüne bakın.