C# 如何遍历stackpanel中的所有文本块
我有一个stackpanel,它在运行时动态添加了许多文本块。我点击的文本块的字体颜色(变为红色)最好的方法是什么,同时确保所有其他字体都保持(或返回)默认白色 我已经有了ontapped处理程序,它可以很好地改变颜色,但是当我单击另一个/second文本块时,问题就出现了,因为最初的文本块不会变回白色。 我想我在寻找的东西大致如下:C# 如何遍历stackpanel中的所有文本块,c#,wpf,xaml,C#,Wpf,Xaml,我有一个stackpanel,它在运行时动态添加了许多文本块。我点击的文本块的字体颜色(变为红色)最好的方法是什么,同时确保所有其他字体都保持(或返回)默认白色 我已经有了ontapped处理程序,它可以很好地改变颜色,但是当我单击另一个/second文本块时,问题就出现了,因为最初的文本块不会变回白色。 我想我在寻找的东西大致如下: foreach (TextBlock tbl in MyStackPanel) { // change all text to white
foreach (TextBlock tbl in MyStackPanel)
{
// change all text to white
}
// Get the tapped one and change it to red
但是,您不能遍历stackpanel子级,因为编译器不允许您这样做。有更好的方法吗?有一个
Children
属性,您可以对其进行迭代
foreach (var tb in MyStackPanel.Children.OfType<TextBlock>())
tb.Foreground = Brushes.White;
foreach(MyStackPanel.Children.OfType()中的var tb)
tb.前景=画笔.白色;
有一个子属性
可以循环使用
foreach (var tb in MyStackPanel.Children.OfType<TextBlock>())
tb.Foreground = Brushes.White;
foreach(MyStackPanel.Children.OfType()中的var tb)
tb.前景=画笔.白色;
它们都是StackPanel
的直接子控件还是嵌套在其他控件中?您应该使用绑定来更改文本框的颜色它们都是StackPanel
的直接子控件还是嵌套在其他控件中?您应该使用绑定来更改文本框的颜色!成功了。谢谢你!成功了。谢谢