FrameworkElement.Name Eigenschaft

Definition

Dient zum Abrufen oder Festlegen des Elementnamens. Der Name stellt einen Verweis bereit, sodass Codebehind, z. B. Ereignishandlercode, nach der Verarbeitung durch einen XAML-Prozessor auf ein Markupelement verweisen kann.

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

Eigenschaftswert

String

Der Name des Elements. Der Standardwert ist eine leere Zeichenfolge.

Implementiert

Attribute

Beispiele

Im folgenden Beispiel wird die Eigenschaft im Code festgelegt und dann der Name Name in der neu erstellten NameScope Datei registriert, indem sie aufgerufen RegisterNamewird. Die hier dargestellte Technik ist eine Anforderung für die Animierung mit Storyboards, da Storyboards die Zielrichtung durch den NameObjektverweis erfordern.

//  
// 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 besteht darin, einen XAML-Elementnamen als Attribut im Markup anzugeben.

Diese Eigenschaft bietet im Wesentlichen eine WPF-Framework-Level-Komforteigenschaft, um die XAML x:Name-Richtlinie festzulegen.

Namen müssen innerhalb eines Namenscopes eindeutig sein. Weitere Informationen hierzu finden Sie unter WPF-XAML-Namescopes.

Name Wenn Sie Elemente im Code erstellen, wird nicht häufig verwendet. Wenn Sie bereits über den entsprechenden Verweis im Code verfügen, können Sie nur Methoden und Eigenschaften auf dem Elementverweis aufrufen und nicht allgemein benötigen Name. Eine Ausnahme davon ist, wenn die Zeichenfolge eine überladene Bedeutung hat, z. B. wenn es nützlich ist, diesen Namen in der Name Benutzeroberfläche anzuzeigen. Name Wenn ein Codebehind festgelegt wurde, wenn das Original Name aus Markup festgelegt wurde, wird auch nicht empfohlen, und das Ändern der Eigenschaft nach dem Laden des XAML-Objekts ändert den ursprünglichen Objektverweis nicht. Die Objektbezüge werden nur erstellt, wenn die zugrunde liegenden Namescopes während der Analyse explizit erstellt werden. Sie müssen insbesondere aufrufen RegisterName , um eine effektive Änderung an der Name Eigenschaft eines bereits geladenen Elements vorzunehmen.

Ein bemerkenswerter Fall, bei dem die Einstellung Name von Code wichtig ist, wenn Namen für Elemente registriert werden, die storyboards ausgeführt werden, damit sie zur Laufzeit referenziert werden können. Bevor Sie einen Namen registrieren können, müssen Sie möglicherweise auch eine NameScope Instanz instanziieren und zuweisen. Weitere Informationen finden Sie im Abschnitt "Beispiel" oder " Storyboards".

Die Einstellung Name von Code hat begrenzte Anwendungen, aber das Abrufen eines Elements durch Name ist häufiger. Ein bestimmtes Szenario ist, wenn Ihre Anwendung ein Navigationsmodell unterstützt, in dem Seiten in die Anwendung neu geladen werden, und der Laufzeitcode ist nicht unbedingt codebehind für diese Seite definiert. Die Hilfsmethode FindName, die von jedem FrameworkElementverfügbar ist, kann jedes Element Name in der logischen Struktur für dieses Element finden, indem Sie die Struktur nach Bedarf rekursiv durchsuchen. Oder Sie können die statische Methode LogicalTreeHelperverwenden, die FindLogicalNode auch eine Name Zeichenfolge als Argument verwendet.

In der Regel verwendete Stammelemente (WindowPagez. B. implementieren Die SchnittstelleINameScope). Implementierungen dieser Schnittstelle werden erwartet, dass Namen innerhalb ihres Bereichs eindeutig sind. Die Stammelemente, die diese Schnittstelle definieren, definieren auch die Namescope-Verhaltensgrenzen für alle verwandten APIs.

Die Name Eigenschaft dient auch als Bezeichner für andere Prozesse. Beispielsweise wird das WPF-Automatisierungsmodell als AutomationId für Clients und Anbieter verwendet Name .

Die von der XAML-Spezifikation definierten Zeichenfolgenwerte Name haben einige Einschränkungen, wie die zugrunde liegende x:Name-Richtlinie festgelegt. Insbesondere muss ein Name Buchstaben oder ein Unterstrich (_) beginnen und nur Buchstaben, Ziffern oder Unterstriche enthalten. Weitere Informationen hierzu finden Sie unter WPF-XAML-Namescopes.

Name ist eine der wenigen Abhängigkeitseigenschaften, die nicht animiert werden können (IsAnimationProhibited ist true in Metadaten), da der Name selbst für die Ausrichtung einer Animation wichtig ist. Die Datenbindung Name ist technisch möglich, ist aber ein extrem ungewöhnliches Szenario, da eine datengebundene Name Eigenschaft den Hauptzweck der Eigenschaft nicht erfüllen kann: um einen Bezeichnerverbindungspunkt für Codebehind bereitzustellen.

Informationen zur Abhängigkeitseigenschaft

Bezeichnerfeld NameProperty
Metadateneigenschaften auf true festgelegt IsAnimationProhibited

Gilt für