Нет, как вы сказали, можно «наследовать» стиль, используя свойство BasedOn
, но невозможно напрямую «наследовать» шаблон. Это понятно, какова будет семантика наследования шаблонов? Как производный шаблон сможет каким-либо образом добавлять или изменять элементы в базовом шаблоне?
Со стилями это вполне возможно, поскольку вы можете просто добавить Setters
, Triggers
и т. Д. Единственное, что возможно было бы возможно при наследовании шаблона, - это добавление Triggers
к базовому шаблону. Тем не менее, в этом случае вы должны иметь глубокие знания об именах элементов в базовом шаблоне, и изменение имени элемента в базовом шаблоне может нарушить ваш производный. Не говоря уже о проблеме с удобочитаемостью, когда вы ссылаетесь на имя в производном шаблоне, которое полностью определяется где-то еще.
Запоздалое дополнение Сказав все это, можно решить вашу конкретную проблему (хотя я сомневаюсь, что к настоящему моменту она все еще ваша или даже проблема). Вы просто определяете стиль для своего элемента управления с помощью установщика для свойства Template
таким образом:
<Style TargetType="<your type>">
<Setter Property="Template" Value="{StaticResource <existing template resource name>}"/>
</Style>