我是WPF的新手,我查看了几个关于如何设置DataGrid样式的教程。所有这些都使用相同的例子,但是当我尝试将它们实现到我的项目中时,发出了这个恼人的消息。
这是我一直试图实现的代码,我是从MSDN页面获得的:
<Window.Resources>
<!-- DataGrid style -->
<Style x:Key="DataGridStyle1" TargetType="{x:Type DataGrid}">
<Setter Property="ColumnHeaderStyle" Value="{DynamicResource ColumnHeaderStyle1}"/>
</Style>
<!-- DataGridColumnHeader style -->
<Style x:Key="ColumnHeaderStyle1" TargetType="DataGridColumnHeader">
<Setter Property="Height" Value="30"/>
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="Foreground" Value="Blue"/>
<Setter Property="FontSize" Value="18" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ToolTip" Value="Click to sort."/>
</Trigger>
</Style.Triggers>
</Style>
我正在使用: - C#Framework 4.5.1 - Visual Studio 2013的混合 - Visual Studio 2013(我在两个地方都收到了错误)。
所有导入和引用都很好。
我检查了解决方案属性,我的平台目标是“任何CPU”
我猜这个属性可能已被弃用(DataGridColumnHeader)。
希望任何人都能说出正确的方法来实现我的目标。
提前致谢
答案 0 :(得分:1)
尝试在定义之前使用DynamicResource
。尝试交换样式。此外,IMO确实不需要DynamicResource
,只需将其更改为StaticResource
。
<Window.Resources>
<!-- DataGridColumnHeader style -->
<Style x:Key="ColumnHeaderStyle1" TargetType="DataGridColumnHeader">
<Setter Property="Height" Value="30"/>
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="Foreground" Value="Blue"/>
<Setter Property="FontSize" Value="18" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ToolTip" Value="Click to sort."/>
</Trigger>
</Style.Triggers>
</Style>
<!-- DataGrid style -->
<Style x:Key="DataGridStyle1" TargetType="{x:Type DataGrid}">
<Setter Property="ColumnHeaderStyle" Value="{StaticResource ColumnHeaderStyle1}"/>
</Style>
</Window.Resources>