重置继承的 WPF 样式?
Reset inherited WPF style?
在我的应用程序的 App.xaml 部分中,我有一个 ResourceDictionary
元素,它针对 DataGridColumnHeader
和 DataGridCell
之类的内容并向它们应用自定义样式。这些定义是全局的(因为它们不使用 x:key - 它们适用于该类型的所有实例)。
是否可以将这些类型的样式完全重置为 'base' Aero 主题(或当前正在使用的任何主题)以用于我的应用程序的一个子部分?
我试过使用
<Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
</Style>
这似乎什么也没做,因为我猜它只是继承了自己。
有两种重置样式的方法:
将元素的样式 属性 设置为 {x:Null}
。您将必须对每个元素执行此操作。
<Button Height="50" Style="{x:Null}"></Button>
在包含要重置的元素的元素的资源中定义一个空样式。不要指定 BasedOn
,否则它将继承所有属性并且不会将它们重置为标准(正如您正确注意到的那样)。
<Style TargetType="{x:Type DataGridColumnHeader}">
</Style>
在我的应用程序的 App.xaml 部分中,我有一个 ResourceDictionary
元素,它针对 DataGridColumnHeader
和 DataGridCell
之类的内容并向它们应用自定义样式。这些定义是全局的(因为它们不使用 x:key - 它们适用于该类型的所有实例)。
是否可以将这些类型的样式完全重置为 'base' Aero 主题(或当前正在使用的任何主题)以用于我的应用程序的一个子部分?
我试过使用
<Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
</Style>
这似乎什么也没做,因为我猜它只是继承了自己。
有两种重置样式的方法:
将元素的样式 属性 设置为
{x:Null}
。您将必须对每个元素执行此操作。<Button Height="50" Style="{x:Null}"></Button>
在包含要重置的元素的元素的资源中定义一个空样式。不要指定
BasedOn
,否则它将继承所有属性并且不会将它们重置为标准(正如您正确注意到的那样)。<Style TargetType="{x:Type DataGridColumnHeader}"> </Style>