我应该以这种风格为BasedOn
添加什么?
<Style
x:Key="DataGrid_ColumnHeaderStyle"
TargetType="wt:DataGridColumnHeader"
BasedOn="??????????"> <!-- I want this to be a reference to the default style -->
<Setter
Property="BorderBrush"
Value="{StaticResource Media_RaisedBorderBrush}" />
<Setter
Property="Background"
Value="{StaticResource Media_RaisedBackgroundBrush}" />
<Setter
Property="Foreground"
Value="{StaticResource Media_RaisedForegroundBrush}" />
</Style>
我不想覆盖整个默认样式,我只想用setter更改一些属性。
修改
我知道如何使用BasedOn
,我只是不知道我试图根据我的风格或在哪里找到它的风格的名称。什么是默认/内置样式的名称?
编辑2:
好吧,我想这毕竟不是我需要的。我是否包含BasedOn="{StaticResource {x:Type wt:DataGridColumnHeader}}"
似乎没有任何区别。问题是只设置BorderBrush
,Background
和Foreground
会导致排序箭头消失。我不明白为什么会发生这种情况,因为排序箭头在ControlTemplate
中定义,我没有编辑/覆盖ControlTemplate
。我的排序箭头在哪里? (我确实启用了排序,单击列标题会导致数据排序......它只是没有显示箭头。)
答案 0 :(得分:2)
BasedOn =“{StaticResource {x:Type TextBox}}”&gt;它将继承默认样式(这适用于TextBox,但它适用于每个控件)。
答案 1 :(得分:1)
我理解它的方式你不需要将BasedOn指定为默认样式。也许如果您设置OverridesDefaultStyle,则必须这样做。我相信默认样式仍然适用,只有您在样式设置器中指定的属性才会更改。
就找到有关默认样式/模板的更多信息,一种方法是在Blend中打开项目并右键单击要查看默认模板的元素,然后选择“编辑模板”。 ..“,然后选择编辑副本。