Xaml 为DataGrid元素提供特定样式(隐式)
我正在尝试为DataGrid和TextBlocks隐式应用一种样式 对于TextBlock的前景,我需要白色颜色 对于DataGrid的行,我需要黑色颜色 除此之外,对于DataGrid的标题列,我还需要白色 当我在主页上全局应用隐式样式时Xaml 为DataGrid元素提供特定样式(隐式),xaml,silverlight-4.0,silverlight-5.0,Xaml,Silverlight 4.0,Silverlight 5.0,我正在尝试为DataGrid和TextBlocks隐式应用一种样式 对于TextBlock的前景,我需要白色颜色 对于DataGrid的行,我需要黑色颜色 除此之外,对于DataGrid的标题列,我还需要白色 当我在主页上全局应用隐式样式时 <UserControl> <UserControl.Resorces> <Style targetType="TextBlock"> <Setter Property="Foregrou
<UserControl>
<UserControl.Resorces>
<Style targetType="TextBlock">
<Setter Property="Foreground" Value="White"/>
</Style>
</UserControl.Resorces>
</UserControl>
使TextBlock的前景变白操作完成!但除此之外,所有的元素
在DataGrid中(我认为默认的内容元素是textblock)变成白色
它看起来不像你猜的那样白对白:)
那么,我如何特别地将DataGrid的前景元素指定为黑色呢
我可以使用如下所示的相同技术来实现这一点,但这对于每个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>
提前谢谢 如果是我,我会拿出完整的控件模板,并相应地设置它们的样式,而不是尝试进行特殊的setter更改,以覆盖原始模板的位。在Expression Blend中,单击鼠标右键,选择“编辑模板->编辑副本”,并为您的行等拆分模板,然后使用StaticResource隐式应用这些模板。谢谢您的回答。我做到了。ControlTemplate1是DataGrid的模板。事实上,我之前就把你的建议应用到了Telerik的RadGridView上。你需要设置几十种样式。事实上,我通过使用Telerik的GridView部件样式解决了这个问题。无论如何,你希望编辑和回答时使用+1。是的,我可以从大量的经验告诉你,我通常讨厌处理Telerik的控件模板。但是,如果您已经得到了答案,请确保更新该线程,并将其标记为“已回答”,以便将来帮助他人:)