Sdílet prostřednictvím


FrameworkElement.Name Vlastnost

Definice

Získá nebo nastaví identifikační název prvku. Tento název poskytuje odkaz, aby kód za kódem, například kód obslužné rutiny události, mohl odkazovat na prvek značky po jeho vytvoření během zpracování procesorem 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

Hodnota vlastnosti

Název prvku. Výchozí hodnota je prázdný řetězec.

Implementuje

Atributy

Příklady

Následující příklad nastaví Name vlastnost v kódu a pak zaregistruje název do nově vytvořeného NameScope voláním RegisterName. Zde znázorněná technika je požadavkem na animaci s scénářem, protože scénáře vyžadují cílení pomocí objektu Namea nelze je cílit na odkaz na objekt.

//  
// 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)

Poznámky

Nejběžnějším použitím této vlastnosti je zadat název elementu XAML jako atribut v kódu.

Tato vlastnost v podstatě poskytuje vlastnost pohodlí na úrovni architektury WPF pro nastavení direktivy XAML x:Name.

Názvy musí být jedinečné v rámci názvového rozsahu. Další informace naleznete v tématu WPF XAML Namescopes.

Získání elementů Name v kódu není běžné. Pokud již máte odpovídající odkaz v kódu, můžete pouze volat metody a vlastnosti v odkazu na element a nebude obecně potřebovat Name. Výjimkou je, pokud Name má řetězec nějaký přetížený význam, například pokud je užitečné zobrazit tento název v uživatelském rozhraní. Name Nastavení kódu zezadu, pokud původní Name byl nastaven z revizí, se také nedoporučuje a změna vlastnosti po načtení XAML nezmění původní odkaz na objekt. Odkazy na objekty jsou vytvořeny pouze v případech, kdy jsou podkladové názvové rozsahy explicitně vytvořeny během analýzy. Je třeba konkrétně volat RegisterName , aby provést efektivní změnu Name vlastnosti již načteného elementu.

Jedním z důležitých případů, kdy je nastavení Name z kódu důležité, je při registraci názvů prvků, se kterými se scénáře spustí, aby bylo možné na tyto prvky odkazovat za běhu. Před registrací názvu může být také potřeba vytvořit instanci a přiřadit NameScope instanci. Viz část Příklad nebo Přehled scénářů.

Nastavení Name z kódu má omezené aplikace, ale získání prvku Name je častější. Jedním konkrétním scénářem je, že vaše aplikace podporuje navigační model, ve kterém se stránky znovu načtou do aplikace, a kód doby běhu nemusí být pro danou stránku definovaný kódem. Utility metoda FindName, která je k dispozici z libovolného FrameworkElement, může najít libovolný prvek v Name logickém stromu pro tento prvek, vyhledávání stromu rekurzivně podle potřeby. Nebo můžete použít statickou metodu FindLogicalNodeLogicalTreeHelper, která také přebírá Name řetězec jako argument.

Obvykle používané kořenové elementy (WindowPagenapříklad) implementují rozhraní INameScope. Očekává se, že implementace tohoto rozhraní budou vynucovat, aby názvy byly v rámci jejich oboru jednoznačné. Kořenové elementy, které definují toto rozhraní, také definují hranice chování namescope pro všechna související rozhraní API.

Vlastnost Name slouží také jako identifikátor pro jiné procesy. Například model automatizace WPF se použije Name jako AutomationId pro klienty a poskytovatele.

Řetězcové hodnoty použité pro Name určitá omezení, jak je stanoveno základní direktivou x:Name definovanou specifikací XAML. Name Zejména musí začínat písmenem nebo podtržítkem (_) a musí obsahovat pouze písmena, číslice nebo podtržítka. Další informace naleznete v tématu WPF XAML Namescopes.

Name je jednou z velmi málo vlastností závislostí, které nelze animovat (IsAnimationProhibited je true v metadatech), protože samotný název je nezbytný pro cílení na animaci. Datová vazba Name je technicky možná, ale je to velmi neobvyklý scénář, protože datová vazba Name nemůže sloužit hlavnímu zamýšlenému účelu vlastnosti: poskytnutí spojovacího bodu identifikátoru pro kód za kódem.

Informace o vlastnosti závislosti

Položka Hodnota
Pole Identifikátor NameProperty
Vlastnosti metadat nastavené na true IsAnimationProhibited

Platí pro