代码之家  ›  专栏  ›  技术社区  ›  JohnIdol

如何循环通过WPF StackPanel静态项?

  •  7
  • JohnIdol  · 技术社区  · 16 年前

    可能很容易,但我很难弄清楚(谷歌似乎也没什么帮助)。

    如何循环访问StackPanel的静态声明的元素(没有数据绑定-元素在XAML中声明)?

    感谢您的帮助!

    2 回复  |  直到 10 年前
        1
  •  10
  •   Tim Cooper    14 年前

    你的意思是 StackPanel 孩子们?

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

    一个更通用的解决方案,不管父级如何,都可以使用 LogicalTreeHelper VisualTreeHelper ,取决于要遍历的WPF树:

    foreach (var child in LogicalTreeHelper.GetChildren(stackPanel))
    {
        //do something with child
    }
    
        2
  •  0
  •   Michael Bahig    10 年前

    我和约翰多尔的想法一样,因为在我的例子中,我有一个孩子,我知道它的类型;我不想用不必要的循环来模糊我的代码。这就是我如何到达超链接内的文本块的方法:

            var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator();
            looper.MoveNext();
            TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock;