C# WPF - 代码中如何更改列的背景颜色

3

我以前从未真正使用过WPF,所以这可能是一个新手问题,但是否有一种方法可以更改WPF网格的列的背景颜色?

我想从代码中更改第0列的背景颜色。

  <Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition x:Name="Banner" Width="25" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>

    <Border Grid.Row="0" Grid.Column="0" Background="Gainsboro" />
    <Border Grid.Row="1" Grid.Column="0" Background="Gainsboro" />
    <Border Grid.Row="2" Grid.Column="0" Background="Gainsboro" />
    <Border Grid.Row="3" Grid.Column="0" Background="Gainsboro" />

    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="*" />
        <RowDefinition Height="*" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Label x:Name="titleLabel" 
           Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="3" 
           FontWeight="Bold"
           Content="Title" >

    </Label>
    <Label x:Name="msgLabel" 
           Grid.Row="2" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="3" 
           Content="Title" >
    </Label>
</Grid>

1
增加一个覆盖该列的边框,然后更改其背景色? - Evk
1
你确定要按照代码执行吗? - Rand Random
@Evk 有没有一种方法可以选择所有行来完成这个操作?你在想什么? - cbutler
2
@cbutler 只需在 Border 元素上设置 Grid.RowSpan。这将使其占用多行。 - Kyle
WPF的方式是绑定到一个属性。 - Filburt
1个回答

3
您可以添加一个边框并将其放置在第一列(请注意RowSpan):
<Border x:Name="firstColumn" 
        Grid.Column="0" 
        Grid.Row="0" 
        Grid.RowSpan="4" 
        Background="Transparent"/>

如果需要通过代码更改背景,只需执行以下操作:

firstColumn.Background = Brushes.Red;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接