2009-10-05 94 views
0

我想为位于UserControl中的WPF DataGrid使用标题样式。但我得到这个:样式不适用于WPF中的Datagrid标题...资源问题

找不到名为'{DataGridRowHeaderBackgroundStyle}'的资源。资源名称区分大小写。对象'Microsoft.Windows.Controls.DataGridTextColumn'在标记文件'WPF; component/view/dashboardview.xaml'第17行50.位置错误。

我将StaticResource更改为DynamicResource。没有错误,但款式不会改变。

我有这样定义的风格:

<Style x:Key="DataGridRowHeaderBackgroundStyle" TargetType="{x:Type Primitives:DataGridColumnHeader}"> 
        <Setter Property="Background"> 
         <Setter.Value> 
          <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
           <GradientStop Color="White" Offset="0"/> 
           <GradientStop Color="#FF4C78F0" Offset="0.983"/> 
           <GradientStop Color="#FFEDF1FD" Offset="0.422"/> 
           <GradientStop Color="#FFACC0F7" Offset="0.069"/> 
          </LinearGradientBrush> 
         </Setter.Value> 
        </Setter> 
       </Style> 

内Window.xaml作为资源

<Window.Resources> 
     <ResourceDictionary Source="MainDebugResources.xaml" /> 
    </Window.Resources> 

这是在用户控件

<data:DataGridTextColumn HeaderStyle="{StaticResource DataGridRowHeaderBackgroundStyle}" Header="Error" Width="*" 
              Binding="{Binding Text}" IsReadOnly="True" /> 

请让我知道如果即时通讯做错了。

感谢

回答

1

尝试使用此方法包括ResourceDictionary中:

<Window.Resources> 
    <ResourceDictionary> 
        <ResourceDictionary.MergedDictionaries> 
         <ResourceDictionary Source="MainDebugResources.xaml" />     
        </ResourceDictionary.MergedDictionaries> 
       </ResourceDictionary> 
</Window.Resources>