FrameworkElement.Name Właściwość

Definicja

Pobiera lub ustawia nazwę identyfikującą elementu. Nazwa zawiera odwołanie, dzięki czemu kod-za, taki jak kod obsługi zdarzeń, może odwoływać się do elementu znaczników po jego konstruowaniu podczas przetwarzania przez procesor 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

Wartość właściwości

String

Nazwa elementu. Wartość domyślna to pusty ciąg.

Implementuje

Atrybuty

Przykłady

Poniższy przykład ustawia Name właściwość w kodzie, a następnie rejestruje nazwę w nowo utworzonym NameScope przez wywołanie metody RegisterName. Zilustrowana tutaj technika jest wymagana do animowania z scenorysami, ponieważ scenorysy wymagają określania wartości docelowej przez Nameobiekt i nie mogą być objęte odwołaniem do obiektu.

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

Najczęstszym użyciem tej właściwości jest określenie nazwy elementu XAML jako atrybutu w adiustacji.

Ta właściwość zasadniczo udostępnia właściwość wygody na poziomie platformy WPF, aby ustawić dyrektywę XAML x:Name.

Nazwy muszą być unikatowe w obrębie zakresu nazw. Aby uzyskać więcej informacji, zobacz WPF XAML Namescopes.

Uzyskiwanie elementu Name , jeśli tworzysz elementy w kodzie, nie jest powszechne. Jeśli masz już odpowiednie odwołanie w kodzie, możesz po prostu wywołać metody i właściwości w odwołaniu do elementu i nie będzie ogólnie potrzebne Name. Wyjątkiem jest to, czy Name ciąg ma pewne przeciążone znaczenie, na przykład jeśli warto wyświetlić tę nazwę w interfejsie użytkownika. Name Ustawienie wartości z kodu za pomocą kodu, jeśli oryginalny Name element został ustawiony z znaczników również nie jest zalecane, a zmiana właściwości po załadowaniu kodu XAML nie spowoduje zmiany oryginalnego odwołania do obiektu. Odwołania do obiektu są tworzone tylko wtedy, gdy bazowe zakresy nazw są jawnie tworzone podczas analizowania. Musisz w szczególności wywołać metodę RegisterName , aby wprowadzić skuteczną zmianę Name właściwości już załadowanego elementu.

Jednym z godnych uwagi przypadków, w których ustawienie Name z kodu jest ważne, jest zarejestrowanie nazw elementów, na których będą uruchamiane scenorysy, aby można było odwoływać się do nich w czasie wykonywania. Zanim będzie można zarejestrować nazwę, może być również konieczne utworzenie wystąpienia i przypisanie NameScope wystąpienia. Zobacz sekcję Przykład lub Omówienie scenorysów.

Ustawienie Name z kodu ma ograniczone aplikacje, ale uzyskanie elementu przez Name jest bardziej powszechne. Jednym z konkretnych scenariuszy jest to, że aplikacja obsługuje model nawigacji, w którym strony są ponownie ładowane do aplikacji, a kod czasu wykonywania niekoniecznie jest zdefiniowany za kodem zdefiniowanym dla tej strony. Metoda FindNamenarzędzia , która jest dostępna z dowolnego FrameworkElementelementu , może znaleźć dowolny element Name w drzewie logicznym dla tego elementu, wyszukując drzewo cyklicznie w razie potrzeby. Możesz też użyć statycznej FindLogicalNode metody , LogicalTreeHelperktóra również przyjmuje Name ciąg jako argument.

Zazwyczaj używane elementy główne (WindowPagena przykład) implementują interfejs INameScope. Oczekuje się, że implementacje tego interfejsu będą wymuszać, że nazwy są jednoznaczne w ich zakresie. Elementy główne definiujące ten interfejs definiują również granice zachowania namescope dla wszystkich powiązanych interfejsów API.

Właściwość Name służy również jako identyfikator innych procesów. Na przykład model automatyzacji WPF będzie używany Name jako identyfikator AutomationId dla klientów i dostawców.

Wartości ciągów używane do Name obsługi niektórych ograniczeń, nałożonych przez podstawową dyrektywę x:Name zdefiniowaną przez specyfikację XAML. Przede wszystkim Name musi zaczynać się literą lub znakiem podkreślenia (_) i musi zawierać tylko litery, cyfry lub podkreślenia. Aby uzyskać więcej informacji, zobacz WPF XAML Namescopes.

Name jest jedną z niewielu właściwości zależności, których nie można animować (IsAnimationProhibited jest true w metadanych), ponieważ sama nazwa jest niezbędna do określania wartości docelowej animacji. Powiązanie Name danych jest technicznie możliwe, ale jest bardzo nietypowym scenariuszem, ponieważ powiązana z Name danymi nie może pełnić głównego przeznaczenia właściwości: w celu zapewnienia punktu połączenia identyfikatora dla kodu za pomocą kodu.

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

Pole identyfikatora NameProperty
Właściwości metadanych ustawione na true IsAnimationProhibited

Dotyczy