【发布时间】:2012-09-22 07:16:48
【问题描述】:
我为 DataGridColumnHeader 做了一个样式,我想从默认的 DataGridColumnHeader 派生它,所以我这样做:
<Style TargetType="{x:Type DataGridColumnHeader}" x:Key="ColumnHeaderStyle" BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
<TextBlock Grid.Column="1" Grid.Row="0" Text="{TemplateBinding Content}" HorizontalAlignment="Center">
</TextBlock>
......
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
但是不行,DataGrid好像没有defaultStyle了,我认为问题是在上面的代码中为DataGridColumnHeader设置模板,但是我该怎么办?
【问题讨论】:
-
哪些属性没有被继承?
-
例如,我不能再使用鼠标左键在两个列标题之间单击来更改列的宽度!
-
@raha 您可以使用
BasedOn继承样式,但您不能“继承”单个样式属性...并且覆盖ControlTemplate属性将删除许多默认功能.我建议问问你到底想做什么。 -
@dbaseman:嗯,我想在 DataGridColumnHeader 中添加一个 TextBox 和一个 Button,并从默认的 DataGridColumnHeaderStyle 继承样式和单个样式属性,如果没有 ControlTemplate,我该怎么做?
标签: wpf styles wpfdatagrid