Pergunta

Provavelmente muito fácil, mas estou tendo problemas para descobrir isso (também Google parece não ajuda muito).

Como posso percorrer os elementos estaticamente declarados? (Sem ligação de dados - elementos são declarados no xaml) de um StackPanel

Qualquer ajuda apreciada!

Foi útil?

Solução

Você quer dizer os filhos do StackPanel?

foreach (var child in stackPanel.Children)
{
    //do something with child
}

Uma solução mais genérica que iria funcionar independentemente do pai seria usar LogicalTreeHelper ou VisualTreeHelper, dependendo do que WPF árvore que você deseja percorrer:

foreach (var child in LogicalTreeHelper.GetChildren(stackPanel))
{
    //do something with child
}

Outras dicas

Eu pensei exatamente o mesmo que Johnldol, já que no meu caso eu tive um filho e eu sabia seu tipo; Eu não queria obscurecer meu código por um circuito desnecessário. Então é assim que cheguei ao TextBlock dentro do Hyperlink:

        var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator();
        looper.MoveNext();
        TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top