Я создал сетку в WPF с прямоугольниками внутри, и XAML заключается в следующем:Заполните прямоугольник внутри сетки
<Grid HorizontalAlignment="Left" Name="grid1" VerticalAlignment="Top" Initialized="grid1_Initialized">
<Rectangle Height="300" HorizontalAlignment="Left" Margin="228,120,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="40" Fill="Red" />
<Rectangle Fill="OrangeRed" Height="300" HorizontalAlignment="Left" Margin="268,120,0,0" Name="stackPanel2" VerticalAlignment="Top" Width="40" />
<Rectangle Fill="Orange" Height="300" HorizontalAlignment="Left" Margin="308,120,0,0" Name="stackPanel3" VerticalAlignment="Top" Width="40" />
...
</Grid>
(Просто игнорируйте имена stackPanel1, stackPanel2, ..., они» re теперь прямоугольники).
Что я хочу сделать, это назначить цвет заливки, но я не могу получить к ним доступ. Я пробовал:
foreach (var stackpanl in mainGrid.Children.OfType<StackPanel>())
{
int row = Grid.GetRow(rectangle);
if (Grid.GetRow(stackpanl) < 2)
{
stackpanl.Background = new SolidColorBrush(Colors.Blue);
}
}
Но это возвращает значение 0 для строки на каждой итерации.
Я также попытался:
for(int i = 0; i < 15 ; i++)
{
var rectangle = grid1.Children[i];
int row = Grid.GetRow(rectangle);
if (row == 2)
{
rectangle.Fill = new SolidColorBrush(Colors.Magenta);
}
}
Но, видимо Наполните не является свойством в отношении к grid1.Children [я] элемент.
Как изменить цвет отдельных прямоугольников? Благодаря!