[英]WPF Text foreground color of whole column in DataGrid
我有一个应用程序,用户可以切换到4种不同颜色主题之一。 对于该颜色主题,我使用了4个不同的xaml资源字典。 应用程序还使用绑定到从DB加载的数据表的数据网格。 这些数据网格的第一列始终与其他列具有不同的颜色。
用户切换主题时发生问题。 除第一列中的文本外,其他所有内容均正确更改(根据字典中的设置)。
这是我对res的定义。 字典(每个字典文件中的名称相同,但颜色不同):
<SolidColorBrush x:Key="textBrush" Color="LightGreen" />
然后这是我的数据网格定义:
<DataGrid Name="coilTabDG" AutoGenerateColumns="False" Grid.Column="3" Grid.ColumnSpan="1" Grid.Row="1" Grid.RowSpan="6" HorizontalAlignment="Stretch" Margin="5,5,5,5" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" ItemsSource="{Binding}" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="False" CanUserResizeRows="False" SelectionUnit="FullRow" HeadersVisibility="Column" >
<DataGrid.Columns>
<DataGridTextColumn Header="coilNumber" Width="100*" Foreground="{DynamicResource textBrush}" Binding="{Binding Path='coilNum'}">
</DataGridTextColumn>
<DataGridTextColumn Header="Thickness" Width="100*" Binding="{Binding Path='thick'}">
</DataGridTextColumn>
<DataGridTextColumn Header="Grade" Width="100*" Binding="{Binding Path='grade'}">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
你们可以帮我如何随着颜色主题的变化而改变本专栏的前景吗? 任何解决方案表示赞赏! 谢谢。
定义引用您资源的单元格样式
<Style x:Key="CurrencyCellStyle" TargetType="{x:Type DataGridCell}">
<Setter Property="Foreground" Value="{DynamicResource textBrush}" />
</Style>
将样式应用于您的列定义
<DataGridTextColumn Header="coilNumber" Width="100*" CellStyle="{StaticResource CurrencyCellStyle}" Binding="{Binding Path='coilNum'}"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.