如何遍历stackpanel中的所有文本块

时间:2015-05-14 13:39:12

标签: c# wpf xaml

我有一个stackpanel,它在运行时动态地添加了许多文本块。什么是改变我点击的文本块的字体颜色(到红色)的最佳方法,同时确保所有其他文本块保留为(或返回)默认白色。

我已经有了ontapped处理程序,可以更好地改变颜色,但是当我点击另一个/不同的文本块时出现问题 - 因为最初的一个没有变回白色。 我想我正在寻找类似的东西:

foreach (TextBlock tbl in MyStackPanel)
    {
        // change all text to white
    }

      // Get the tapped one and change it to red

然而,你不能遍历stackpanel子,因为编译器不会让你。有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

您可以迭代一个Children属性。

foreach (var tb in MyStackPanel.Children.OfType<TextBlock>())
    tb.Foreground = Brushes.White;