C# WPF旧控件模板在新控件模板中

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

我使用来自外部库的自定义控件,它具有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> 
                   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代码

我希望避免复制整个旧代码

恐怕这是不可能的。您确实可以将一个
样式
建立在另一个
样式
的基础上,并覆盖特定的设置器,但您不能“覆盖”或仅继承
控制模板的一部分
。不幸的是,您必须(重新)将整个模板定义为一个整体

因此,在这种情况下,您实际上需要复制(整个)原始模板,然后根据您的要求对其进行编辑