Udostępnij przez


Instrukcje: znajdowanie elementu według jego nazwy

W tym przykładzie opisano sposób użycia metody FindName w celu znalezienia elementu według jego wartości Name.

Przykład

W tym przykładzie metoda znajdowania określonego elementu według jego nazwy jest zapisywana jako procedura obsługi zdarzeń przycisku. stackPanel to Name przeszukiwanego FrameworkElement głównego, a następnie przykładowa metoda wizualnie wskazuje znaleziony element przez rzutowanie go jako TextBlock i zmianę jednej z TextBlock widocznych właściwości interfejsu użytkownika.

void Find(object sender, RoutedEventArgs e)
{
    object wantedNode = stackPanel.FindName("dog");
    if (wantedNode is TextBlock)
    {
        // Following executed if Text element was found.
        TextBlock wantedChild = wantedNode as TextBlock;
        wantedChild.Foreground = Brushes.Blue;
    }
}
Private Sub Find(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Dim wantedNode As Object = stackPanel.FindName("dog")
    If TypeOf wantedNode Is TextBlock Then
        ' Following executed if Text element was found.
        Dim wantedChild As TextBlock = TryCast(wantedNode, TextBlock)
        wantedChild.Foreground = Brushes.Blue
    End If
End Sub

Uwaga / Notatka

Metoda FindName znajduje tylko elementy, które są częścią zakresu nazw XAML. Jeśli dodasz element do drzewa obiektów programowo po załadowaniu kodu XAML, wartość elementu Name lub x:Name nie zostanie automatycznie zarejestrowana w przestrzeni nazw XAML. Aby dynamicznie dodany element był możliwy do znalezienia według nazwy, wywołaj RegisterName na zakresie nazw XAML (zazwyczaj korzeniu strony lub okna) przed dodaniem elementu do nadrzędnego kontenera. Aby uzyskać więcej informacji, zobacz XAML Namescopes.