Поделиться через


Практическое руководство. Поиск элемента по его имени

В этом примере описывается, как использовать метод FindName для поиска элемента по его Name значению.

Пример

В этом примере метод для поиска определенного элемента по имени записывается в качестве обработчика событий кнопки. stackPanel - это Name корневого FrameworkElement, который ищется, и затем в примере метода визуально обозначается найденный элемент, приводя его к TextBlock и изменяя одно из TextBlock видимых свойств пользовательского интерфейса.

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

Замечание

Метод FindName находит только элементы, которые являются частью области имен XAML. Если вы добавляете элемент в дерево объектов программным путем после загрузки XAML, значение Name или x:Name элемента не регистрируется в области имен XAML автоматически. Чтобы сделать динамически добавленный элемент доступным для поиска по имени, вызовите RegisterName в области имен XAML (обычно корневом элементе страницы или окна) перед добавлением элемента в родительский контейнер. Дополнительные сведения см. в области имен XAML.