FrameworkElement.Name FrameworkElement.Name FrameworkElement.Name FrameworkElement.Name Property

Definition

Dient zum Abrufen oder Festlegen des Elementnamens.Gets or sets the identifying name of the element. Der Name stellt einen Verweis bereit, damit CodeBehind, wie etwa Ereignishandlercode, auf ein Markupelement verweisen kann, nachdem es während der Verarbeitung durch einen XAMLXAML-Prozessor konstruiert wurde.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; }
member this.Name : string with get, set
Public Property Name As String

Eigenschaftswert

Der Name des Elements.The name of the element. Der Standardwert ist eine leere Zeichenfolge.The default is an empty string.

Implementiert

Beispiele

Im folgenden Beispiel wird die Name Eigenschaft im Code, und klicken Sie dann den Namen in die neu erstellte registriert NameScope durch Aufrufen von RegisterName.The following example sets the Name property in code, and then registers the name into the newly created NameScope by calling RegisterName. Das hier beschriebene Verfahren ist eine Voraussetzung für das Animieren mit Storyboards, aus, da Storyboards erfordern Zielgruppenadressierung der Name, und kann nicht als Objektverweis angewendet werden.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)

Hinweise

Die häufigste Verwendung dieser Eigenschaft wird an eine XAMLXAML Elementname als ein Attribut im Markup.The most common usage of this property is to specify a XAMLXAML element name as an attribute in markup.

Diese Eigenschaft bietet im Wesentlichen eine WPF-Frameworkebene Hilfseigenschaft Festlegen der XAMLXAML X: Name Directive.This property essentially provides a WPF framework-level convenience property to set the XAMLXAML x:Name Directive.

Namen müssen innerhalb eines Namescope eindeutig sein.Names must be unique within a namescope. Weitere Informationen finden Sie unter WPF-XAML-Namescopes.For more information, see WPF XAML Namescopes.

Abrufen einer Name bei der Erstellung der Elemente im Code wird nicht empfohlen.Getting a Name if you are creating elements in code is not common. Wenn Sie den entsprechenden Verweis bereits im Code haben, rufen Sie einfach Methoden und Eigenschaften für das Element verweisen und nicht der Fall ist im Allgemeinen müssen die 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. Eine Ausnahme wird Wenn das Name Zeichenfolge verfügt über eine überladene Bedeutung, z. B. ist dies nützlich, um diese Anzeigenamen in UIUI.An exception to this is if the Name string has some overloaded meaning, for instance if it is useful to display that name in UIUI. Festlegen eine Name vom Code-Behind-Wenn die ursprüngliche Name wurde aus dem Markup festgelegt wird ebenfalls nicht empfohlen, und Ändern der Eigenschaft nach dem Laden der XAMLXAML ändert sich nicht auf den ursprünglichen Objektverweis.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. Die Objektverweise werden nur erstellt, wenn die zugrunde liegenden Namescopes explizit während der Analyse erstellt werden.The object references are created only when the underlying namescopes are explicitly created during parsing. Müssen Sie ausdrücklich Aufrufen RegisterName auf eine effektiv zu ändern, die Name Eigenschaft des bereits geladenen Elements.You must specifically call RegisterName to make an effective change to the Name property of an already loaded element.

Beachten Sie einen Fall, in dem das Festlegen Name von Code ist wichtig ist, beim Registrieren von Namen für Elemente, für die storyboards ausgeführt, damit sie bei der Ausführung verwiesen werden kann.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. Bevor Sie einen Namen registrieren können, möglicherweise müssen Sie auch instanziieren und Zuweisen einer NameScope Instanz.Before you can register a name, might also need to instantiate and assign a NameScope instance. Finden Sie im Beispielabschnitt oder Übersicht über Storyboards.See the Example section, or Storyboards Overview.

Festlegen von Name über Code verfügt über eingeschränkten, Anwendungen, aber ein Element abrufen Name wird häufiger verwendet.Setting Name from code has limited applications, but getting an element by Name is more common. Ein bestimmtes Szenario ist, wenn Ihre Anwendung ein Navigationsmodell unterstützt, in dem Seiten erneut laden, bei der Anwendung, und der Code zur Laufzeit ist nicht notwendigerweise Code-Behind für diese Seite definiert.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. Die Hilfsmethode FindName, steht aus allen FrameworkElement, finde, dass jedes Element von Name suchen Sie in der logischen Struktur für dieses Element, die rekursiv nach Bedarf.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. Oder Sie können die FindLogicalNode statische Methode der LogicalTreeHelper, der auch akzeptiert eine Name Zeichenfolge als Argument.Or you can use the FindLogicalNode static method of LogicalTreeHelper, which also takes a Name string as an argument.

In der Regel verwendet Stammelemente (Window, Page z. B.) implementieren die Schnittstelle INameScope.Typically used root elements (Window, Page for example) implement the interface INameScope. Implementierungen dieser Schnittstelle sollten erzwingen, dass Namen innerhalb ihres Bereichs eindeutig sein.Implementations of this interface are expected to enforce that names be unambiguous within their scope. Die Stammelemente, die diese Schnittstelle definieren, definieren die Grenzen des Namescope auch für alle verknüpften APIsAPIs.The root elements that define this interface also define the namescope behavior boundaries for all the related APIsAPIs.

Die Name Eigenschaft dient auch als Bezeichner für andere Prozesse.The Name property also serves as an identifier for other processes. Z. B. die WPFWPF Automatisierungsmodell verwendet Name als AutomationId für Clients und Anbietern.For instance, the WPFWPF automation model will use Name as the AutomationId for clients and providers.

Die Zeichenfolgenwerte, die zum Name haben Sie einige Einschränkungen, wie vom zugrunde liegenden auferlegt X: Name Directive von definiert die XAMLXAML Spezifikation.The string values used for Name have some restrictions, as imposed by the underlying x:Name Directive defined by the XAMLXAML specification. Insbesondere eine Name muss mit einem Buchstaben oder ein Unterstrich () beginnen und darf nur Buchstaben, Ziffern oder Unterstriche enthalten.Most notably, a Name must start with a letter or the underscore character (), and must contain only letters, digits, or underscores. Weitere Informationen finden Sie unter WPF-XAML-Namescopes.For more information, see WPF XAML Namescopes.

Name ist eine sehr wenige Abhängigkeitseigenschaften, die nicht animiert werden können (IsAnimationProhibited ist true in den Metadaten), da der Name selbst wichtig für das Festlegen einer Animation ist.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. Datenbindung einer Name ist es technisch möglich ist, jedoch ist ein äußerst ungewöhnliches Szenario, da ein datengebundenes Name den wichtigsten Zweck die Eigenschaft kann nicht verarbeitet werden: um ein ID-Verbindungspunkt für Code-Behind bereitzustellen.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.

Informationen zur AbhängigkeitseigenschaftDependency Property Information

Feld "ID"Identifier field NameProperty
Legen Sie auf der Metadaten-Eigenschaften trueMetadata properties set to true IsAnimationProhibited

Gilt für: