【发布时间】:2020-11-09 11:04:38
【问题描述】:
我有这段代码会影响DataGrid 的整行:
<DataGrid x:Name="tblopenRequests" ItemsSource="{Binding}" Grid.Column="1" Grid.Row="2"
IsReadOnly="true" RowHeaderWidth="0" AutoGenerateColumns="False" CanUserAddRows="False" SelectionMode="Single">
<DataGrid.Resources>
<Style BasedOn="{StaticResource {x:Type DataGridColumnHeader}}" TargetType="{x:Type DataGridColumnHeader}" >
<Setter Property="Background" Value="LightSeaGreen" />
<Setter Property="Foreground" Value="white" />
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="BorderThickness" Value="1 1 1 1"/>
<Setter Property="Margin" Value="-1,-1,0,0" />
<Setter Property="Height" Value="28" />
<Setter Property="Width" Value="auto"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
<Style TargetType="DataGridCell">
<Setter Property="HorizontalContentAlignment" Value="Right" />
<Style.Triggers>
<Trigger Property="DataGridCell.IsSelected" Value="True">
<Setter Property="Background" Value="Goldenrod" />
<Setter Property="BorderBrush" Value="white" />
<Setter Property="Foreground" Value="black" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="FontSize" Value="15"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
我现在想用不同的格式覆盖行中的一个单元格以更加突出。
这就是我目前所拥有的,但我的尝试总是失败。
<DataGridTextColumn Binding="{Binding expectedDate}" Header="Expected Date" Width="90">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
我已尝试在此处添加触发器并仅对单元格着色。但是,这并没有做任何事情,只是在资源部分中保留了上述代码中的橙色。
我只需要这个粉红色/浅红色而不是橙色的单元格,但我找不到具有此答案的网站或论坛文章。
【问题讨论】:
-
橙色?我没有在你的代码/XAML 中找到 Orange。
-
@GlennAngel:您知道
DataGridColumn有一个CellStyle属性,您可以为每个单独的列设置一个Style? -
谢谢@mm8 我会调查这个问题和答案。 WPF 上第一次有这么大的学习曲线!