我在XAML中制作了一个5x5的网格,其中每行放置了一个TextBlock和一个边框5次。它看起来像这样:image无法用[]将索引应用于'Border'类型的表达式
我想要创建一个动画,通过行来显示用户它正在检查输入。 (只是为了使它看起来程序正在做某些事情,实际检查发生的方式不同)。
第一行(我砍最后的边界段休息后关闭)的XAML代码:
<Grid BorderThickness="1" BorderBrush="Black">
<Grid Margin="10" BorderThickness="1" BorderBrush="White" Width="350" Grid.RowSpan="4" Grid.ColumnSpan="2" Height="450">
<Grid.Resources>
<SolidColorBrush x:Key="brush" Color="Silver"/>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border x:Name="borderRow1Column1" Grid.Column="0" Grid.Row="0" BorderBrush="{StaticResource brush}" BorderThickness="1" Width="50" Height="50">
<TextBlock x:Name="tbRow1column1" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"></TextBlock>
</Border>
<Border x:Name="borderRow1Column2" Grid.Column="1" Grid.Row="0" BorderBrush="{StaticResource brush}" BorderThickness="1" Width="50" Height="50">
<TextBlock x:Name="tbRow1column2" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"></TextBlock>
</Border>
<Border x:Name="borderRow1Column3" Grid.Column="2" Grid.Row="0" BorderBrush="{StaticResource brush}" BorderThickness="1" Width="50" Height="50">
<TextBlock x:Name="tbRow1column3" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24" ></TextBlock>
</Border>
<Border x:Name="borderRow1Column4" Grid.Column="3" Grid.Row="0" BorderBrush="{StaticResource brush}" BorderThickness="1" Width="50" Height="50">
<TextBlock x:Name="tbRow1column4" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"></TextBlock>
</Border>
<Border x:Name="borderRow1Column5" Grid.Column="4" Grid.Row="0" BorderBrush="{StaticResource brush}" BorderThickness="1" Width="50" Height="50">
<TextBlock x:Name="tbRow1column5" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"></TextBlock>
</Border>
<!-- More Rows following after this one -->
</Grid>
现在,我想有一个循环,通过该行中的每个文本块去,和而不是复制粘贴它,我想通过具有索引的for循环来减少代码。
private void displayCheckAnimation()
{
Color gray = Color.FromArgb(255, 128, 128, 128);
Color black = Color.FromArgb(255, 255, 255, 255);
Border borderRow1Column = new Border();
for (int i = 0; i < 5; i++)
{
borderRow1Column[i].Background = new SolidColorBrush(gray);
Task.Delay(50).Wait();
borderRow1Column[i].Background = new SolidColorBrush(black);
Task.Delay(50).Wait();
}
}
但是,这给我的错误
CS0021 Cannot apply indexing with [] to an expression of type 'Border'
的任何解决方案,我怎么可以通过我行的循环?