会员“BackGround”无法识别或无法访问

时间:2016-12-07 01:06:15

标签: c# wpf visual-studio-2013 wpfdatagrid datagridcolumnheader

我是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)。

希望任何人都能说出正确的方法来实现我的目标。

提前致谢

1 个答案:

答案 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>