Я работающий над проектом WPF, где я переопределил CheckBox
управление для некоторых специальных операций. Это работает правильно.
Моя проблема состоит в том что ControlTemplate
это было применено от темы (shinyred.xaml от codeplex), не применяется к моему переопределенному управлению. Есть ли способ наследоваться CheckBox
ControlTemplate
для использования моим новым управлением?
Все образцы, которые может найти я, фокусируются на наследовании стиля для CheckBox
, но ничто о ControlTemplate
.
Нет, как вы сказали, можно «наследовать» стиль, используя свойство
, но невозможно напрямую «наследую» шаблон. Это понятно, хотя, какая была бы семантика наследства шаблона? Как бы выдвинутый шаблон может каким-то образом добавлять или изменить элементы в базовом шаблоне?
С стилями это совершенно возможно, так как вы можете просто добавить . Универсал
, триггеры
и т. Д. Единственное, что было бы возможным с наследством шаблона, добавляют триггеры
к базовому шаблону. Однако в этом случае вам придется иметь интимные знания названий элементов в базовом шаблоне, а изменение имени элемента в базовом шаблоне может нарушить ваш вывод. Не говоря уже о проблеме с читаемостью, где вы относитесь к имени в вашем производственном шаблоне, который определяется где-то еще.
запоздалое дополнение Указав все это, можно решить вашу конкретную проблему (хотя я сомневаюсь в настоящее время, это все еще ваша или даже проблема). Вы просто определяете стиль для вашего управления с помощью сеттера для свойства
, таким образом:
<Style TargetType="<your type>">
<Setter Property="Template" Value="{StaticResource <existing template resource name>}"/>
</Style>