我有一个stackpanel,它在运行时动态地添加了许多文本块。什么是改变我点击的文本块的字体颜色(到红色)的最佳方法,同时确保所有其他文本块保留为(或返回)默认白色。
我已经有了ontapped处理程序,可以更好地改变颜色,但是当我点击另一个/不同的文本块时出现问题 - 因为最初的一个没有变回白色。 我想我正在寻找类似的东西:
foreach (TextBlock tbl in MyStackPanel)
{
// change all text to white
}
// Get the tapped one and change it to red
然而,你不能遍历stackpanel子,因为编译器不会让你。有更好的方法吗?
答案 0 :(得分:4)
您可以迭代一个Children
属性。
foreach (var tb in MyStackPanel.Children.OfType<TextBlock>())
tb.Foreground = Brushes.White;