FrameworkElement.Name Właściwość

Definicja

Pobiera lub ustawia nazwę identyfikującą elementu.Gets or sets the identifying name of the element. Nazwa zawiera odwołanie, dzięki czemu kod, taki jak kod procedury obsługi zdarzeń, może odwoływać się do elementu znaczników po jego skonstruowaniu podczas przetwarzania przez procesor XAML.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 XAML 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; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)>]
member this.Name : string with get, set
Public Property Name As String

Wartość właściwości

String

Nazwa elementu.The name of the element. Wartość domyślna to pusty ciąg.The default is an empty string.

Implementuje

Atrybuty

Przykłady

Poniższy przykład ustawia Name Właściwość w kodzie, a następnie rejestruje nazwę w nowo utworzonym NameScope wywołaniu RegisterName .The following example sets the Name property in code, and then registers the name into the newly created NameScope by calling RegisterName. Technika zilustrowana w tym miejscu jest wymagana w przypadku animacji z scenorysami, ponieważ Scenorysy wymagają elementów docelowych Name i nie mogą być wskazywane przez odwołanie do obiektu.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)

Uwagi

Najbardziej typowym użyciem tej właściwości jest określenie nazwy elementu XAML jako atrybutu w znaczniku.The most common usage of this property is to specify a XAML element name as an attribute in markup.

Ta właściwość zasadniczo zapewnia wygodną właściwość na poziomie platformy WPF, aby ustawić dyrektywę x:Namejęzyka XAML.This property essentially provides a WPF framework-level convenience property to set the XAML x:Name Directive.

Nazwy muszą być unikatowe w obrębie elementu namescope.Names must be unique within a namescope. Aby uzyskać więcej informacji, zobacz WPF XAML Zakresy nazw WPF.For more information, see WPF XAML Namescopes.

Uzyskiwanie, Name Jeśli tworzysz elementy w kodzie nie są wspólne.Getting a Name if you are creating elements in code is not common. Jeśli masz już odpowiednie odwołanie w kodzie, możesz wywołać metody i właściwości w odwołaniu do elementu i nie będzie to zwykle potrzebne 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. Wyjątkiem jest to Name , czy ciąg ma pewne przeciążone znaczenie, na przykład jeśli jest przydatne do wyświetlania tej nazwy w interfejsie użytkownika.An exception to this is if the Name string has some overloaded meaning, for instance if it is useful to display that name in UI. Ustawienie na Name podstawie kodu w przypadku, gdy oryginał Name został ustawiony z znaczników nie jest również zalecane i zmiana właściwości po załadowaniu kodu XAML nie spowoduje zmiany oryginalnego odwołania do obiektu.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 XAML will not change the original object reference. Odwołania do obiektów są tworzone tylko wtedy, gdy bazowe Zakresy nazw WPF są tworzone jawnie podczas analizowania.The object references are created only when the underlying namescopes are explicitly created during parsing. Należy wywołać, RegisterName Aby wprowadzić skuteczną zmianę Name właściwości już załadowanego elementu.You must specifically call RegisterName to make an effective change to the Name property of an already loaded element.

W przypadku, gdy ustawienie Name od kodu jest ważne, rejestruje nazwy dla elementów, dla których będą uruchamiane Scenorysy, dzięki czemu mogą być przywoływane w czasie wykonywania.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. Przed zarejestrowaniem nazwy może również wystąpić potrzeba wystąpienia i przypisania NameScope wystąpienia.Before you can register a name, might also need to instantiate and assign a NameScope instance. Zapoznaj się z sekcją przykładu lub scenorysami.See the Example section, or Storyboards Overview.

Ustawienie Name z kodu ma ograniczone aplikacje, ale pobieranie elementu przez Name jest bardziej popularne.Setting Name from code has limited applications, but getting an element by Name is more common. Jednym z określonych scenariuszy jest to, że aplikacja obsługuje model nawigacyjny, w którym strony ładują się ponownie do aplikacji, a kod czasu wykonywania nie musi być kodem zdefiniowanym dla tej strony.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. Metoda narzędziowa FindName , która jest dostępna z dowolnego FrameworkElement , może znaleźć każdy element Name w drzewie logicznym dla tego elementu, przeszukiwanie drzewa cyklicznie w razie potrzeby.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. Można też użyć FindLogicalNode statycznej metody LogicalTreeHelper , która również przyjmuje Name ciąg jako argument.Or you can use the FindLogicalNode static method of LogicalTreeHelper, which also takes a Name string as an argument.

Zazwyczaj używane elementy główne ( Window Page na przykład) implementują interfejs INameScope .Typically used root elements (Window, Page for example) implement the interface INameScope. Implementacje tego interfejsu powinny wymusić niejednoznaczność nazw w zakresie.Implementations of this interface are expected to enforce that names be unambiguous within their scope. Elementy główne, które definiują ten interfejs, również definiują granice zachowania namescope dla wszystkich powiązanych interfejsów API.The root elements that define this interface also define the namescope behavior boundaries for all the related APIs.

NameWłaściwość służy również jako identyfikator dla innych procesów.The Name property also serves as an identifier for other processes. Na przykład model automatyzacji WPF będzie używany Name jako AutomationId dla klientów i dostawców.For instance, the WPF automation model will use Name as the AutomationId for clients and providers.

Wartości ciągu używane dla Name mają pewne ograniczenia, nałożone przez podstawową dyrektywę x:Name zdefiniowaną przez specyfikację języka XAML.The string values used for Name have some restrictions, as imposed by the underlying x:Name Directive defined by the XAML specification. W szczególności Name musi zaczynać się literą lub znakiem podkreślenia () i może zawierać tylko litery, cyfry i znaki podkreślenia.Most notably, a Name must start with a letter or the underscore character (), and must contain only letters, digits, or underscores. Aby uzyskać więcej informacji, zobacz WPF XAML Zakresy nazw WPF.For more information, see WPF XAML Namescopes.

Name jest jedną z bardzo mało właściwości zależności, które nie mogą być animowane ( IsAnimationProhibited true w metadanych), ponieważ sama sama nazwa jest istotna dla celów animacji.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. Powiązanie danych a Name jest technicznie możliwe, ale jest wyjątkowo nietypowym scenariuszem, ponieważ powiązane z danymi Name nie mogą służyć do głównego zamierzonego celu właściwości: w celu zapewnienia punktu połączenia identyfikatora dla kodu.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.

Informacje dotyczące właściwości zależnościDependency Property Information

Pole identyfikatoraIdentifier field NameProperty
Właściwości metadanych ustawione na trueMetadata properties set to true IsAnimationProhibited

Dotyczy