FrameworkElement.Name Özellik

Tanım

Öğenin tanımlayıcı adını alır veya ayarlar.Gets or sets the identifying name of the element. Ad, olay işleyicisi kodu gibi arka plan kodunun bir işlemcinin işlem sırasında oluşturulduktan sonra bir biçimlendirme öğesine başvurabilmesi için bir başvuru sağlar XAMLXAML .The name provides a reference so that code-behind, such as event handler code, can refer to a markup element after it is constructed during processing by a XAMLXAML processor.

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

Özellik Değeri

String

Öğe adı.The name of the element. Varsayılan değer boş bir dizedir.The default is an empty string.

Uygulamalar

Öznitelikler

Örnekler

Aşağıdaki örnek, Name kodundaki özelliği ayarlar ve sonra çağırarak adı yeni oluşturulan ' a kaydeder NameScope RegisterName .The following example sets the Name property in code, and then registers the name into the newly created NameScope by calling RegisterName. Görsel taslaklara animasyon ekleme gereksinimi, film şeritleri tarafından hedefleme gerektirdiğinden Name ve nesne başvurusu tarafından hedeflenmediği için burada gösterilen tekniktir.The technique illustrated here is a requirement for animating with storyboards, because storyboards require targeting by the Name, and cannot be targeted by object reference.

//  
// 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)

Açıklamalar

Bu özelliğin en yaygın kullanımları, XAMLXAML biçimlendirme içindeki bir öznitelik olarak bir öğe adı belirtmektir.The most common usage of this property is to specify a XAMLXAML element name as an attribute in markup.

Bu özellik temelde, XAMLXAML X:Name yönergesiniayarlamak için WPF çerçevesi düzeyi kullanışlı bir özellik sağlar.This property essentially provides a WPF framework-level convenience property to set the XAMLXAML x:Name Directive.

Adlar bir namescope içinde benzersiz olmalıdır.Names must be unique within a namescope. Daha fazla bilgi için bkz. WPF xaml namescopes.For more information, see WPF XAML Namescopes.

NameKodda öğe oluşturuyorsanız bir alma işlemi ortak değildir.Getting a Name if you are creating elements in code is not common. Zaten kod içinde uygun başvuruya sahipseniz, öğe başvurusunda yalnızca yöntemleri ve özellikleri çağırabilirsiniz ve genellikle bu gerekmez Name .If you have the appropriate reference in code already, you can just call methods and properties on the element reference and will not generally need the Name. Bunun için bir özel durum, Name dizenin daha fazla anlamı varsa, örneğin, içinde bu adı göstermek için yararlıdır Kullanıcı arabirimiUI .An exception to this is if the Name string has some overloaded meaning, for instance if it is useful to display that name in Kullanıcı arabirimiUI. Özgün bir Name biçimlendirmeden ayarlandığı takdirde bir arka plan kod ayarı Name da önerilmez ve, yüklendikten sonra özelliğin değiştirilmesi XAMLXAML özgün nesne başvurusunu değiştirmez.Setting a Name from code-behind if the original Name was set from markup is also not recommended, and changing the property after loading the XAMLXAML will not change the original object reference. Nesne başvuruları, yalnızca temeldeki ad kapsamları ayrıştırma sırasında açıkça oluşturulduğunda oluşturulur.The object references are created only when the underlying namescopes are explicitly created during parsing. RegisterName Name Zaten yüklü olan bir öğenin özelliğinde etkili bir değişiklik yapmak için özel olarak çağırmanız gerekir.You must specifically call RegisterName to make an effective change to the Name property of an already loaded element.

Koddan yapılan ayarların önemli olduğu bir önemli örneği Name , film şeridi 'nin çalışacağı öğeler için adları kaydetme sırasında, çalışma zamanında başvurulabilmeleri için.One notable case where setting Name from code is important is when registering names for elements that storyboards will run against, so that they can be referenced at run time. Bir adı kaydedebilmeniz için önce bir örnek örneği oluşturma ve atama de gerekebilir NameScope .Before you can register a name, might also need to instantiate and assign a NameScope instance. Örnek bölümüne veya görsel taslaklara genel bakışkonusuna bakın.See the Example section, or Storyboards Overview.

NameKoddan Setting, sınırlı uygulamalara sahiptir, ancak öğesinin alınması Name daha yaygındır.Setting Name from code has limited applications, but getting an element by Name is more common. Tek bir senaryo, uygulamanızın sayfaların uygulamaya yeniden yüklendiği bir gezinti modelini desteklediğinden, çalışma zamanı kodunun Bu sayfa için tanımlanan kod arkasında olmaması.One particular scenario is if your application supports a navigation model where pages reload into the application, and the run time code is not necessarily code-behind defined for that page. FindNameHerhangi bir ' den kullanılabilir olan yardımcı program yöntemi, FrameworkElement Name Bu öğe için mantıksal ağaçta herhangi bir öğeyi bulabilir ve gerektiğinde ağacı yinelemeli olarak arar.The utility method FindName, which is available from any FrameworkElement, can find any element by Name in the logical tree for that element, searching the tree recursively as necessary. Ya FindLogicalNode LogicalTreeHelper da bağımsız değişken olarak bir dize alan ' ın statik yöntemini kullanabilirsiniz Name .Or you can use the FindLogicalNode static method of LogicalTreeHelper, which also takes a Name string as an argument.

Genellikle kullanılan kök öğeler ( Window Page Örneğin,) arabirimini uygular INameScope .Typically used root elements (Window, Page for example) implement the interface INameScope. Bu arabirimin uygulamalarının, bu adların kapsamları dahilinde benzersiz olmasını zorunlu kılmak için beklenmektedir.Implementations of this interface are expected to enforce that names be unambiguous within their scope. Bu arabirimi tanımlayan kök öğeleri ayrıca tüm ilgili API 'Ler için NameScope davranış sınırlarını tanımlar.The root elements that define this interface also define the namescope behavior boundaries for all the related APIs.

NameÖzelliği, diğer süreçler için de bir tanımlayıcı işlevi görür.The Name property also serves as an identifier for other processes. Örneğin, WPFWPF Otomasyon modeli, Name istemciler ve sağlayıcılar Için AutomationId olarak kullanılacaktır.For instance, the WPFWPF automation model will use Name as the AutomationId for clients and providers.

İçin kullanılan dize değerleri Name , belirtim tarafından tanımlanan temeldeki X:Name Yönergesi tarafından belirtilen bazı kısıtlamalara sahiptir XAMLXAML .The string values used for Name have some restrictions, as imposed by the underlying x:Name Directive defined by the XAMLXAML specification. Çoğu bilinen olarak, bir Name harf veya alt çizgi karakteri () ile başlamalıdır ve yalnızca harf, rakam veya alt çizgi içermelidir.Most notably, a Name must start with a letter or the underscore character (), and must contain only letters, digits, or underscores. Daha fazla bilgi için bkz. WPF xaml namescopes.For more information, see WPF XAML Namescopes.

Name , IsAnimationProhibited true animasyonun kendisi bir animasyonu hedeflemek için hayati öneme sahip olduğu için animasyon uygulanamadığı çok az sayıda bağımlılık özelliklerinden biridir (meta verileridir).Name is one of the very few dependency properties that cannot be animated (IsAnimationProhibited is true in metadata), because the name itself is vital for targeting an animation. Veri bağlama Name işlemi teknik açıdan olasıdır, ancak veri bağlı, Name özelliğin ana amaçlanan amacını sunamadığı için son derece seyrek görülen bir senaryodur: arka plan kodu için bir tanımlayıcı bağlantı noktası sağlamak için.Data binding a Name is technically possible, but is an extremely uncommon scenario because a data-bound Name cannot serve the main intended purpose of the property: to provide an identifier connection point for code-behind.

Bağımlılık Özelliği BilgileriDependency Property Information

Tanımlayıcı alanıIdentifier field NameProperty
Meta veri özellikleri olarak ayarlandı trueMetadata properties set to true IsAnimationProhibited

Şunlara uygulanır