繁体   English   中英

WPF DataGrid中整个列的文本前景色

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM