我有一个应用程序,用户可以切换到4种不同颜色主题之一。对于那些颜色主题,我使用4种不同的xaml资源字典。 此外,应用程序还使用绑定到从DB加载的数据表的datagrids。这些数据网格总是具有与其他列不同的彩色第一列。
用户切换主题时出现问题。除了第一列中的文字外,所有内容都会正确更改(根据res.dictionry中的设置)。
这是我对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>
你能帮助我如何通过改变颜色主题来改变这个专栏的前景吗? 感谢任何解决方案! 谢谢。
答案 0 :(得分:0)
定义引用资源的单元格样式
<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'}"/>