C# 基于ControlTemplate资源中定义的样式的样式
我正在使用第三方C# 基于ControlTemplate资源中定义的样式的样式,c#,wpf,xaml,C#,Wpf,Xaml,我正在使用第三方ContentControl,它具有以下主题: <Style TargetType="{x:Type xyz:XyzControl}" x:Key="XyzControl"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type xyz:XyzControl}">
ContentControl
,它具有以下主题:
<Style TargetType="{x:Type xyz:XyzControl}" x:Key="XyzControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type xyz:XyzControl}">
<ControlTemplate.Resources>
<Style TargetType="Button">
<!-- A lot of styling... -->
</Style>
</ControlTemplate.Resources>
<!-- More template stuff... -->
我试图基于
{StaticResource{x:Type Button}}
,但这会加载默认的全局按钮样式,而不是此上下文中的默认样式。为第三方的按钮样式添加一个键:
<Style TargetType="Button" x:key="xyzbuttonStyle">
然后:
<Style TargetType="Button" BasedOn="{StaticResource xyzbuttonStyle}">
为第三方的按钮样式添加一个键:
<Style TargetType="Button" x:key="xyzbuttonStyle">
然后:
<Style TargetType="Button" BasedOn="{StaticResource xyzbuttonStyle}">
这是不可能的,因为您不能将一个控制模板
建立在另一个控制模板
的基础上。您必须将整个模板重新定义为一个整体:
向样式添加触发器不会影响或“覆盖”控件的ControlTemplate
中定义的触发器,因此您必须从头覆盖整个ControlTemplate
当然,您可以将默认模板复制到XAML标记中,并根据您的要求进行编辑。这是不可能的,因为您不能将一个控制模板
建立在另一个控制模板
上。您必须将整个模板重新定义为一个整体:
向样式添加触发器不会影响或“覆盖”控件的ControlTemplate
中定义的触发器,因此您必须从头覆盖整个ControlTemplate
当然,您可以将默认标记复制到XAML标记中,并根据您的要求进行编辑。Thx,但第三方被称为第三方,因为它不是我的第三方:-)我无法更改该代码。Thx,但第三方被称为第三方,因为它不是我的第三方:-)我无法更改该代码。