【问题标题】:Giving a specific style to DataGrid element (implicitly)为 DataGrid 元素赋予特定样式(隐式)
【发布时间】:2012-12-21 09:42:10
【问题描述】:

我正在尝试为 DataGrid 和 TextBlocks 隐式应用样式。

对于 TextBlock 的前景,我需要 白色 颜色。

对于 DataGrid 的行,我需要 Black 颜色。

除此之外,DataGrid 的标题列还需要 White

当我在 MainPage 上全局应用隐式样式时

<UserControl>
 <UserControl.Resorces>
    <Style targetType="TextBlock">
        <Setter Property="Foreground" Value="White"/>
    </Style>
 </UserControl.Resorces>
</UserControl>

TextBlock 的 Foreground White 操作完成!但除此之外,所有元素 在 DataGrid 中(默认情况下,我认为内容元素是文本块)变成白色。

正如你猜想的那样,白底白字看起来不太好 :) 那么如何将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>

提前致谢!

【问题讨论】:

    标签: xaml silverlight-4.0 silverlight-5.0


    【解决方案1】:

    如果是我,我会拉出完整的控制模板并相应地设置它们的样式,而不是尝试仅进行临时设置器更改以覆盖原始模板的位。在 Expression Blend 中右键单击,选择“编辑模板 -> 编辑副本”并为您的行等拆分模板,然后使用 StaticResource 隐式应用这些模板。

    【讨论】:

    • 感谢您的回答。我做到了 。 ControlTemplate1 是 DataGrid 的模板。实际上,我之前将您的建议应用于 Telerik 的 RadGridView。您需要设置数十种样式。事实上,我在使用 Telerik 的 GridView 部件样式提出这个问题后解决了这个问题。无论如何,您希望 +1 来编辑和回答。
    • 是的,我可以从大量经验告诉你,我通常讨厌处理 Telerik 的控制模板。但是,如果您已经得到答案,请确定并更新线程并将其标记为已回答以在将来帮助某人:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多