FrameworkElement.Name Propriété

Définition

Obtient ou définit le nom d’identification de l’élément. Le nom fournit une référence afin que le code-behind, tel que le code du gestionnaire d’événements, puisse faire référence à un élément de balisage après sa construction pendant le traitement par un processeur XAML.

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

Valeur de propriété

String

Nom de l'élément. La valeur par défaut est une chaîne vide.

Implémente

Attributs

Exemples

L’exemple suivant définit la propriété dans le Name code, puis inscrit le nom dans le nouveau créé NameScope en appelant RegisterName. La technique illustrée ici est une exigence pour l’animation avec des storyboards, car les storyboards nécessitent le ciblage par le Name, et ne peuvent pas être ciblés par référence d’objet.

//  
// 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 nom d’élément XAML en tant qu’attribut dans le balisage.

Cette propriété fournit essentiellement une propriété pratique au niveau de l’infrastructure WPF pour définir la directive XAML x:Name.

Les noms doivent être uniques dans un namescope. Pour plus d’informations, consultez Portées de nom XAML WPF.

L’obtention d’un Name élément si vous créez des éléments dans le code n’est pas courant. Si vous disposez déjà de la référence appropriée dans le code, vous pouvez simplement appeler des méthodes et des propriétés sur la référence d’élément et n’aura généralement pas besoin du Name. Une exception à ceci est si la Name chaîne a une signification surchargée, par exemple s’il est utile d’afficher ce nom dans l’interface utilisateur. La définition d’un Name code-behind si l’origine Name a été définie à partir du balisage n’est pas recommandée, et la modification de la propriété après le chargement du code XAML ne modifie pas la référence d’objet d’origine. Les références d’objet sont créées uniquement lorsque les portées de noms sous-jacentes sont créées explicitement pendant l’analyse. Vous devez spécifiquement appeler RegisterName pour apporter une modification effective à la Name propriété d’un élément déjà chargé.

L’un des cas notables dans lesquels la définition Name du code est importante consiste à inscrire des noms pour les éléments sur lesquels les storyboards s’exécutent, afin qu’ils puissent être référencés au moment de l’exécution. Avant de pouvoir inscrire un nom, il peut également être nécessaire d’instancier et d’affecter une NameScope instance. Consultez la section Exemple ou vue d’ensemble des storyboards.

La définition Name à partir du code a des applications limitées, mais l’obtention d’un élément Name par est plus courante. Un scénario particulier est que votre application prend en charge un modèle de navigation dans lequel les pages sont rechargées dans l’application, et que le code d’exécution n’est pas nécessairement un code-behind défini pour cette page. La méthode FindNameutilitaire, disponible à partir de n’importe quel élément, peut trouver n’importe quel FrameworkElementélément Name dans l’arborescence logique de cet élément, en recherchant l’arborescence de manière récursive si nécessaire. Vous pouvez également utiliser la FindLogicalNode méthode statique de LogicalTreeHelper, qui prend également une Name chaîne comme argument.

En général, Page les éléments racines utilisés (Windowpar exemple) implémentent l’interfaceINameScope. Les implémentations de cette interface sont censées appliquer que les noms soient non ambigus dans leur étendue. Les éléments racines qui définissent cette interface définissent également les limites de comportement de portée de nom pour toutes les API associées.

La Name propriété sert également d’identificateur pour d’autres processus. Par exemple, le modèle d’automatisation WPF sera utilisé Name comme AutomationId pour les clients et les fournisseurs.

Les valeurs de chaîne utilisées pour Name avoir certaines restrictions, telles que imposées par la directive x:Name sous-jacente définie par la spécification XAML. Plus particulièrement, un Name doit commencer par une lettre ou le caractère de soulignement (_) et ne doit contenir que des lettres, des chiffres ou des traits de soulignement. Pour plus d’informations, consultez Portées de nom XAML WPF.

Name est l’une des rares propriétés de dépendance qui ne peuvent pas être animées (IsAnimationProhibited se trouve true dans les métadonnées), car le nom lui-même est essentiel pour cibler une animation. La liaison de données est Name techniquement possible, mais il s’agit d’un scénario extrêmement rare, car une liaison Name de données ne peut pas servir l’objectif principal prévu de la propriété : fournir un point de connexion d’identificateur pour le code-behind.

Informations sur les propriétés de dépendance

Champ d’identificateur NameProperty
Propriétés de métadonnées définies sur true IsAnimationProhibited

S’applique à