我正在尝试为 DataGrid 和 TextBlocks 隐式应用样式。
对于 TextBlock 的前景,我需要白色。
对于 DataGrid 的行,我需要黑色。
除此之外,对于 DataGrid 的标题列,我再次需要White 。
当我在 MainPage 上全局应用隐式样式时
<UserControl>
<UserControl.Resorces>
<Style targetType="TextBlock">
<Setter Property="Foreground" Value="White"/>
</Style>
</UserControl.Resorces>
</UserControl>
制作TextBlock的Foreground White操作就完成了!但除此之外,DataGrid 中的所有元素(我认为默认内容元素是文本块)都变成了白色。
正如你猜想的那样,它看起来不太好 White on white :) 那么我怎样才能特别指定 DataGrid 的元素 Foreground 为黑色呢?
我可以通过使用下面显示的相同技术来做到这一点,但这对于每个 DataGrid 来说都是一项昂贵的操作。作为一个骗局,我希望 DataGrid 的 HeaderColumns 再次变白。此操作使它们全部变黑。
有没有像我们在 css 样式中那样的明确方式?
这是我试图通过控制模板实现这一目标的方法。但没有机会因为是DataGrid 的ContentControl 是动态的。
<DataGrid>
<DataGrid.Resources>
<Style targetType="TextBlock">
<Setter Property="Foreground" Value="Black"/>
</Style>
<DataGrid.Resources>
事实上,我们使用 Telerik 的 RadGridView,但我给出了一个 sdk 的 DataGrid 示例,以使问题更加全球化。
<Style TargetType="sdk:DataGrid">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="RowDetailsTemplate" Value="{StaticResource DataTemplate1}"/>
<Setter Property="Template" Value="{StaticResource ControlTemplate1}"/>
</Style>
<ControlTemplate x:Key="ControlTemplate1" TargetType="sdk:DataGrid">
<Grid/>
</ControlTemplate>
<DataTemplate x:Key="DataTemplate1">
<Grid/>
</DataTemplate>
提前致谢!