Name Eigenschaft
Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

FrameworkElement.Name-Eigenschaft

 

Ruft den identifizierenden Namen des Elements ab oder legt diesen fest. Der Name stellt einen Verweis für den Code-Behind, z. B. Ereignishandlercode, der auf ein Markupelement verweisen kann, nachdem es während der Verarbeitung von einem XAML Prozessor erstellt wurde.

Namespace:   System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)

[LocalizabilityAttribute(LocalizationCategory.NeverLocalize)]
public string Name { get; set; }

Eigenschaftswert

Type: System.String

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

Die häufigste Verwendung dieser Eigenschaft ist das Angeben eines XAML-Elementnamens in Markup.

Diese Eigenschaft stellt im Wesentlichen eine benutzerfreundliche Eigenschaft auf WPF-Frameworkebene zum Festlegen des XAML-x:Name-Direktive bereit.

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

Das Abrufen eines Name beim Erstellen von Elementen in Code wird nicht empfohlen.Wenn in Code bereits ein geeigneter Verweis enthalten ist, können Sie einfach die Methoden und Eigenschaften für den Elementverweis aufrufen, sodass der Name nicht benötigt wird.Eine Ausnahme liegt vor, wenn die Name-Zeichenfolge eine überladene Bedeutung aufweist, z. B. in Fällen, in denen es sinnvoll ist, den Namen in der UI anzuzeigen.Das Festlegen eines Name aus CodeBehind wird ebenfalls nicht empfohlen, wenn der ursprüngliche Name aus Markup festgelegt wurde, und durch das Ändern der Eigenschaft nach dem Laden von XAML wird der ursprüngliche Objektverweis nicht geändert.Die Objektverweise werden erst erstellt, nachdem die zugrunde liegenden Namescopes während der Analyse explizit erstellt wurden.Sie müssen RegisterName gesondert aufrufen, um eine Name-Eigenschaft eines bereits geladenen Elements effektiv zu ändern.

Beim Registrieren von Namen für Elemente, für die Storyboards ausgeführt werden, damit zur Laufzeit auf sie verwiesen werden kann, liegt ein beachtenswerter Fall vor, in dem das Festlegen von Name in Code von Bedeutung ist.Bevor Sie einen Namen registrieren können, müssen Sie ggf. auch eine NameScope-Instanz instanziieren und zuweisen.Weitere Informationen finden Sie im Abschnitt mit dem Beispiel oder unter Übersicht über Storyboards.

Das Festlegen von Name aus Code ist in Anwendungen wenig verbreitet. Häufiger ist jedoch das Abrufen eines Elements nach Name.Ein besonderes Szenario liegt vor, wenn eine Anwendung ein Navigationsmodell unterstützt, in dem Seiten erneut in die Anwendung geladen werden und der Laufzeitcode nicht unbedingt als CodeBehind für diese Seiten definiert ist.Mit der Hilfsmethode FindName, die für jedes FrameworkElement verfügbar ist, können sämtliche Elemente in der logischen Struktur nach Name nach dem jeweiligen Element durchsucht werden, wobei die Struktur ggf. rekursiv durchsucht wird.Sie können aber auch die statische FindLogicalNode-Methode von LogicalTreeHelper verwenden, wobei die Name-Zeichenfolge ebenfalls als Argument verwendet wird.

Häufig verwendete Stammelemente (z. B. Window, Page) implementieren den INameScope der Schnittstelle.Implementierungen dieser Schnittstelle sollen die Eindeutigkeit von Namen innerhalb ihres Bereichs erzwingen.Die Stammelemente zum Definieren der Schnittstelle definieren auch die Grenzen des Namescopeverhaltens für alle verwandten APIs.

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

Für die Zeichenfolgenwerte für Name bestehen bestimmte Beschränkungen, die sich aus dem zugrunde liegenden x:Name-Direktive ergeben, das durch die XAML-Spezifikation definiert ist.Insbesondere muss ein Name mit einem Buchstaben oder dem Unterstrich (_) beginnen und darf nur Buchstaben, Ziffern oder Unterstriche enthalten.Weitere Informationen finden Sie unter WPF-XAML-Namescopes.

Name ist eine der wenigen Abhängigkeitseigenschaften, die nicht animiert werden können (IsAnimationProhibited ist für Metadaten true), da der Name selbst für das Festlegen einer Animation von entscheidender Bedeutung ist.Das Erstellen einer Datenbindung für einen Name ist technisch möglich, aber ein sehr seltenes Szenario, da ein datengebundener Name den Hauptzweck der Eigenschaft nicht erfüllen kann, der darin besteht, einen Verbindungspunkt für Bezeichner für CodeBehind bereitzustellen.

Bezeichnerfeld

NameProperty

Auf true festgelegte Metadateneigenschaften

IsAnimationProhibited

Im folgenden Beispiel wird die Name-Eigenschaft in Code festgelegt. Anschließend wird der Name im neu erstellten NameScope durch Aufrufen von RegisterName registriert.Das hier veranschaulichte Verfahren ist eine Voraussetzung für Animationen in Storyboards, da für Storyboards das Festlegen nach Name erforderlich ist und die Festlegung nicht nach Objektverweis erfolgen kann.

//  
// Create a Rectangle
//
Rectangle myRectangle = new Rectangle();
myRectangle.Width = 200;
myRectangle.Height = 200;
myRectangle.Name = "myRectangle";
this.RegisterName(myRectangle.Name, myRectangle); 

.NET Framework
Verfügbar seit 3.0
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen:
© 2016 Microsoft