如何从网格中获得精确的行(并更改背景)

本文关键字:背景 网格 | 更新日期: 2023-09-27 17:51:15

我在xaml中定义了这样的网格:

<Grid Name="grdMoney" HorizontalAlignment="Center" Margin="20">
     <Grid.ColumnDefinitions>
        <ColumnDefinition Width="100" />
        <ColumnDefinition Width="*" />
     </Grid.ColumnDefinitions>
     <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
     </Grid.RowDefinitions>
     ... Content, many Textboxes in each row
</Grid>

现在我只想通过改变该行的背景来突出显示该行。但我不知道如何在代码中从网格中得到准确的行。我认为这很容易,但是我在谷歌上搜索了15分钟,找不到。也许是关于grdMoney.Childer[number_of_row]的?感谢您的帮助

如何从网格中获得精确的行(并更改背景)

GridPanel。面板负责布局,仅此而已。如果您想更新背景-将每行的内容放入Border,并找到合适的Border(我在这里写了代码,没有测试它,但应该工作):

int desiredRowId = 2;
foreach(var child in grdMoney.Children.OfType<Border>())
{
    if (Grid.GetRow(child) == desiredRowId)
    { 
        child.Background = new SolidColorBrush(Colors.Red);
    }
}

我可能会在xaml中使用 datattrigger

在数据触发器中,您可以检查您的条件并应用适当的背景