我为数据网格定义了一些样式,但未应用CellStyle,ColumnHeaderStyle和RowStyle的样式。其他风格如背景颜色和rowheight工作正常。 默认样式基于FirstFloor.ModernUI的数据网格样式
如果我将样式直接放在数据网格上,那么一切正常。也是在设计时
<DataGrid
Style="{StaticResource BilagDatagridStyle}"
ColumnHeaderStyle="{StaticResource BilagsColumnHeaderStyle}"
CellStyle="{StaticResource DataGridCellNoInteractionStyle}"
RowStyle="{StaticResource DataGridRowNoInteractionStyle}"
没有它不能正常工作
<DataGrid
Style="{StaticResource BilagDatagridStyle}"
这是我正在使用的样式:
<Style x:Key="BilagsColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="FontSize" Value="12"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Margin="4,3"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="DefaultReadOnlyGridStyle" TargetType="{x:Type DataGrid}" BasedOn="{StaticResource {x:Type DataGrid}}">
<Setter Property="CanUserAddRows" Value="False"/>
<Setter Property="CanUserDeleteRows" Value="False"/>
<Setter Property="CanUserSortColumns" Value="False"/>
<Setter Property="AutoGenerateColumns" Value="False"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="IsReadOnly" Value="True"/>
<Setter Property="SelectionMode" Value="Single"/>
<Setter Property="HeadersVisibility" Value="Column"/>
<Setter Property="Width" Value="Auto"/>
<Setter Property="RowHeight" Value="30"/>
<Style x:Key="BilagDatagridStyle" TargetType="{x:Type DataGrid}" BasedOn="{StaticResource DefaultReadOnlyGridStyle}">
<Setter Property="CellStyle" Value="{StaticResource DataGridCellNoInteractionStyle}"/>
<Setter Property="RowStyle" Value="{StaticResource DataGridRowNoInteractionStyle}"/>
<Setter Property="ColumnHeaderStyle" Value="{StaticResource BilagsColumnHeaderStyle}"/>
它被BilagsColumnHeaderStyle中的模板部分覆盖了。我一直试图写一个单独的模板,但我不能正确的语法。也许如果我分割样式和模板部分它会起作用吗?
非常感谢任何建议