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