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

Définition

Obtient ou définit le nom d’identification de l’élément.Gets or sets the identifying name of the element. Le nom fournit une référence afin que du code-behind, tel que le code d’un gestionnaire d’événements, puisse faire référence à un élément de balisage après qu’il a été construit pendant le traitement par un processeur 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; }
member this.Name : string with get, set
Public Property Name As String

Valeur de propriété

Nom de l'élément.The name of the element. La valeur par défaut est une chaîne vide.The default is an empty string.

Implémente

Exemples

L’exemple suivant définit la Name propriété dans le code, puis inscrit le nom dans nouvellement créé NameScope en appelant RegisterName.The following example sets the Name property in code, and then registers the name into the newly created NameScope by calling RegisterName. La technique illustrée ici est une spécification d’animation avec des storyboards, ces dernières nécessitant un ciblage par le Nameet ne peut pas être ciblés par la référence d’objet.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)

Remarques

L’utilisation la plus courante de cette propriété consiste à spécifier un XAMLXAML nom de l’élément en tant qu’attribut dans le balisage.The most common usage of this property is to specify a XAMLXAML element name as an attribute in markup.

Cette propriété fournit essentiellement une propriété de commodité de niveau infrastructure WPF pour définir le XAMLXAML Directive x : Name.This property essentially provides a WPF framework-level convenience property to set the XAMLXAML x:Name Directive.

Noms doivent être uniques au sein d’une portée de nom.Names must be unique within a namescope. Pour plus d’informations, consultez portées de nom XAML WPF.For more information, see WPF XAML Namescopes.

Obtenir un Name si vous créez des éléments de code n’est pas courant.Getting a Name if you are creating elements in code is not common. Si vous avez déjà la référence appropriée dans le code, vous pouvez simplement appeler des méthodes et propriétés sur l’élément de référence et n’avez généralement pas besoin du 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. Une exception est si le Name chaîne a une signification surchargée, par exemple s’il est utile d’afficher ce nom dans Interface utilisateurUI.An exception to this is if the Name string has some overloaded meaning, for instance if it is useful to display that name in Interface utilisateurUI. Définissant un Name à partir de code-behind si la version d’origine Name a été défini à partir du balisage est également pas recommandée et la modification de la propriété après le chargement du XAMLXAML ne changera pas la référence d’objet d’origine.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. Les références d’objet sont créés uniquement lorsque les portées de nom sous-jacentes sont créées explicitement lors de l’analyse.The object references are created only when the underlying namescopes are explicitly created during parsing. Vous devez appeler spécifiquement RegisterName pour apporter une modification effective pour le Name propriété d’un élément déjà chargé.You must specifically call RegisterName to make an effective change to the Name property of an already loaded element.

Un notable cas où le paramètre Name à partir du code est importante est lors de l’inscription de noms pour exécutent des éléments de tables de montage séquentiel, afin qu’ils puissent être référencés au moment de l’exécution.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. Avant vous pouvez inscrire un nom, vous devez également instancier et attribuer une NameScope instance.Before you can register a name, might also need to instantiate and assign a NameScope instance. Consultez la section exemple, ou vue d’ensemble des Storyboards.See the Example section, or Storyboards Overview.

Paramètre Name à partir du code est limitée à des applications, mais l’obtention d’un élément par Name est plus courant.Setting Name from code has limited applications, but getting an element by Name is more common. Un scénario particulier est si votre application prend en charge un modèle de navigation où rechargent les pages dans l’application, et le code d’exécution n’est pas nécessairement défini pour cette page code-behind.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. La méthode utilitaire FindName, qui est disponible à partir d’un FrameworkElement, peut rechercher n’importe quel élément par Name dans l’arborescence logique pour cet élément, recherche dans l’arborescence de manière récursive en fonction des besoins.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. Vous pouvez également utiliser le FindLogicalNode méthode statique de LogicalTreeHelper, qui prend également un Name chaîne en tant qu’argument.Or you can use the FindLogicalNode static method of LogicalTreeHelper, which also takes a Name string as an argument.

Utilisé en général, les éléments racines (Window, Page par exemple) implémentent l’interface INameScope.Typically used root elements (Window, Page for example) implement the interface INameScope. Les implémentations de cette interface sont supposées renforcer les noms d’être non équivoque dans leur étendue.Implementations of this interface are expected to enforce that names be unambiguous within their scope. Les éléments racines qui définissent cette interface définissent également les limites de comportement de portée de nom pour tous les connexe APIAPIs.The root elements that define this interface also define the namescope behavior boundaries for all the related APIAPIs.

Le Name propriété sert également comme identificateur pour d’autres processus.The Name property also serves as an identifier for other processes. Par exemple, le WPFWPF modèle automation utilisera Name comme AutomationId pour les clients et fournisseurs.For instance, the WPFWPF automation model will use Name as the AutomationId for clients and providers.

Les valeurs de chaîne utilisées pour Name présentent quelques restrictions, imposée par sous-jacent Directive x : Name défini par le XAMLXAML spécification.The string values used for Name have some restrictions, as imposed by the underlying x:Name Directive defined by the XAMLXAML specification. Plus particulièrement, un Name doit commencer par une lettre ou le caractère de soulignement () et doit contenir uniquement des lettres, des chiffres ou des traits de soulignement.Most notably, a Name must start with a letter or the underscore character (), and must contain only letters, digits, or underscores. Pour plus d’informations, consultez portées de nom XAML WPF.For more information, see WPF XAML Namescopes.

Name est une des propriétés de dépendance très peu ne peut pas être animées (IsAnimationProhibited est true dans les métadonnées), car le nom lui-même est essentiel pour cibler une animation.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. Liaison de données un Name est techniquement possible, mais est un scénario extrêmement rare, car une limite de données Name ne peut pas traiter la finalité principale de la propriété : pour fournir un point de connexion d’identificateur pour le code-behind.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.

Informations sur les propriétés de dépendanceDependency Property Information

Champ d’identificateurIdentifier field NameProperty
La valeur des propriétés de métadonnées trueMetadata properties set to true IsAnimationProhibited

S’applique à