Sdílet prostřednictvím


Postupy: Vyhledání elementu podle názvu

Tento příklad popisuje, jak pomocí FindName metody najít prvek podle jeho Name hodnoty.

Příklad

V tomto příkladu je metoda najít konkrétní prvek podle jeho názvu zapsána jako funkce obslužné rutiny události spouštěné tlačítkem. stackPanel je Name kořenového FrameworkElement, který se prohledává, a ukázková metoda pak vizuálně označuje nalezený prvek tím, že ho přetypuje jako TextBlock a změní jednu z TextBlock viditelných vlastností uživatelského rozhraní.

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

Poznámka:

Metoda FindName najde pouze elementy, které jsou součástí názvového oboru XAML. Pokud programově přidáte prvek do stromu objektů po načtení XAML, hodnota Name nebo x:Name se automaticky nezaregistruje v názvovém oboru XAML. Chcete-li, aby byl dynamicky přidaný prvek dohledatelný podle názvu, zavolejte RegisterName na XAML namescope (obvykle stránku nebo kořen okna) předtím, než přidáte prvek do nadřazeného kontejneru. Další informace naleznete v tématu XAML Namescopes.