FrameworkElement.Name Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia nazwę identyfikującą elementu. Nazwa zawiera odwołanie, tak aby kod-behind, taki jak kod procedury obsługi zdarzeń, mógł 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
Nazwa elementu. Wartość domyślna to pusty ciąg.
Implementuje
- Atrybuty
Przykłady
W poniższym przykładzie właściwość jest ustawiana Name w kodzie, a następnie rejestruje nazwę w nowo utworzonej NameScope metodzie przez wywołanie metody RegisterName. Zilustrowana w tym miejscu technika jest wymagana do animowania z scenorysami, ponieważ scenorysy wymagają określania wartości docelowej przez Nameelement 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 zastosowaniem 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 (Nazwy XAML WPF).
Pobieranie elementu Name w przypadku tworzenia elementów 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, że jeśli 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 oryginalna Name wartość została ustawiona na podstawie 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 obiektów są tworzone tylko wtedy, gdy bazowe zakresy nazw są jawnie tworzone podczas analizowania. Należy w szczególności wywołać RegisterName metodę , aby wprowadzić skuteczną zmianę Name właściwości już załadowanego elementu.
Jedną z godnych uwagi przypadków, w której ustawienie Name z kodu jest ważne, jest zarejestrowanie nazw elementów, względem 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 pobieranie elementu przez Name jest bardziej typowe. Jednym z konkretnych scenariuszy jest to, że aplikacja obsługuje model nawigacji, w którym strony są ładowane ponownie do aplikacji, a kod czasu wykonywania nie musi być zdefiniowany 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 rekursywnie w razie potrzeby. Możesz też użyć statycznej FindLogicalNodeLogicalTreeHelpermetody , która również przyjmuje Name ciąg jako argument.
Zazwyczaj używane elementy główne (WindowPagena przykład) implementują interfejs INameScope. Implementacje tego interfejsu powinny wymuszać, że nazwy są jednoznaczne w ich zakresie. Elementy główne definiujące ten interfejs definiują również granice zachowania zakresu nazw 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 dla niektórych Name ograniczeń, nałożonych przez podstawową dyrektywę x:Name zdefiniowaną przez specyfikację XAML. W szczególności znak 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 (Nazwy XAML WPF).
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 niezwykle rzadkim scenariuszem, ponieważ powiązanie Name danych nie może pełnić głównego celu właściwości: w celu zapewnienia punktu połączenia identyfikatora dla kodu.
Informacje o właściwości zależności
| Produkt | Wartość |
|---|---|
| Pole identyfikatora | NameProperty |
Właściwości metadanych ustawione na true |
IsAnimationProhibited |