我正在尝试为位于UserControl中的WPF DataGrid使用标头样式。但我明白了:
找不到名为“{DataGridRowHeaderBackgroundStyle}”的资源。资源名称区分大小写。标记文件'WPF中的对象'Microsoft.Windows.Controls.DataGridTextColumn'出错;组件/视图/ 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>
这是在UserControl中
<data:DataGridTextColumn HeaderStyle="{StaticResource DataGridRowHeaderBackgroundStyle}" Header="Error" Width="*"
Binding="{Binding Text}" IsReadOnly="True" />
如果我做错了,请告诉我。
由于
答案 0 :(得分:1)
尝试这包括ResourceDictionary:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MainDebugResources.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
答案 1 :(得分:0)
我遇到了同样的问题,经过大量的实验,我发现“文本块样式”将覆盖“网格列标题样式”,但仅当指定为“应用程序”资源时才适用,而当指定为“窗口资源”时则没有。