wpf 作为循环在运行时更改颜色

siv3szwd  于 2023-02-20  发布在  其他
关注(0)|答案(1)|浏览(144)

所以我有10个文本块命名:

x:Name="anlage1" ... x:Name="anlage10"

我想在运行时将循环中的BG颜色更改为红色

Brush red= new SolidColorBrush(Colors.Red);

for(int i=0; i < 11;i++)
{
anlage[i].Background = red;
}

不幸的是,语法anlage[i]不起作用,有什么解决办法吗?
此外,这是不工作的FindName(anlage+i).Background = red;

4dbbbstv

4dbbbstv1#

你循环了11次。
应该是0到9,因此〈10,因为它是零索引。

for(int i=0; i < 10;i++)
{
   anlage[i].Background = red;
}

你允许第一个文本块为零吗?
我用3个文本块试过了。你需要把找到的任何东西都转换成文本块(或者一个控件,这样它肯定有一个背景)。而且它们需要已经被呈现。
我的标记是:

<StackPanel>
        <TextBlock Text="0" Name="anlage0"/>
        <TextBlock Text="1" Name="anlage1"/>
        <TextBlock Text="2" Name="anlage2"/>
    </StackPanel>

代码:

private void Window_ContentRendered(object sender, EventArgs e)
    {
        for (int i = 0; i < 3; i++)
        {
            ((TextBlock)FindName("anlage" + i)).Background = Brushes.Red;
        }
    }

这工作正常。

相关问题