C# WPF旧控件模板在新控件模板中
我使用来自外部库的自定义控件,它具有ControlTemplate属性C# WPF旧控件模板在新控件模板中,c#,wpf,C#,Wpf,我使用来自外部库的自定义控件,它具有ControlTemplate属性 <Style x:Key="{x:Type controls:HeaderDiscountButton}" TargetType="{x:Type controls:HeaderDiscountButton}" BasedOn="{StaticResource {x:Type core:ValueButton}}"> <Setter Property="core:ButtonWithPo
<Style x:Key="{x:Type controls:HeaderDiscountButton}" TargetType="{x:Type controls:HeaderDiscountButton}" BasedOn="{StaticResource {x:Type core:ValueButton}}">
<Setter Property="core:ButtonWithPopup.PopupTemplate">
<Setter.Value>
<ControlTemplate>
some complicated xaml code
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
一些复杂的xaml代码
我想覆盖它,但在我的新ControlTemplate中使用旧的
<Style x:Key="{x:Type controls:HeaderDiscountButton}" TargetType="{x:Type controls:HeaderDiscountButton}" BasedOn="{StaticResource {x:Type core:ValueButton}}">
<Setter Property="core:ButtonWithPopup.PopupTemplate">
<Setter.Value>
<ControlTemplate>
<StackPanel>
<Border>some complicated xaml code</Border>
<Border>some additional xaml code</Border>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
一些复杂的xaml代码
一些附加的xaml代码
我希望避免复制整个旧代码恐怕这是不可能的。您确实可以将一个
样式
建立在另一个样式
的基础上,并覆盖特定的设置器,但您不能“覆盖”或仅继承控制模板的一部分
。不幸的是,您必须(重新)将整个模板定义为一个整体
因此,在这种情况下,您实际上需要复制(整个)原始模板,然后根据您的要求对其进行编辑