如何循环WPF StackPanel静态项?

时间:2009-09-14 10:33:23

标签: wpf elements stackpanel loops

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

如何遍历StackPanel中静态声明的元素(没有数据绑定 - 在xaml中声明元素)?

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:10)

你的意思是StackPanel的孩子吗?

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

一个更通用的解决方案,无论父级如何都可以使用LogicalTreeHelperVisualTreeHelper,具体取决于您希望遍历的WPF树:

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

答案 1 :(得分:0)

我认为和Johnldol一样,因为在我的情况下,我有一个孩子,我知道它的类型;我不想通过不必要的循环来模糊我的代码。这就是我在Hyperlink中到达TextBlock的方式:

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