Если я создаю класс, который наследуется от ContentControl
, и создаю неявный стиль, который устанавливает свойство Template
на что-то (неважно, что), то я создаю явный стиль, который также устанавливает одно из свойств, скажем Background
, почему это так, что когда я создаю экземпляр элемента в XAML с явным набором стилей, мой Template
переопределяется.
Итак. Если я создам класс как таковой:
public class MyContentControl : ContentControl
создать неявный стиль с шаблоном, настроенным на что-то (скажем так, я обертываю ContentPresenter
в Border
).
создать явный стиль "MyStyle" с помощью <Setter Property="Background" Value="Blue" />
Тогда создайте экземпляр:
<my:MyContentControl Style={StaticResource MyStyle} />
Я смотрю на свой элемент управления после вызова OnApplyTemplate, и свойство Template
отражает шаблон для ContentControl
, а не мой шаблон. Если я возьму явный стиль, он отлично работает.
Это смущает меня, потому что то же самое работает с классом Button
. Я могу создать стиль Button
, который не устанавливает Template
. Я полагаю, это может быть связано с тем, что ButtonBase
не имеет шаблона, но я не уверен, что вызывает такое поведение.
Я знаю, что могу просто StaticReference
мой шаблон в моих явных стилях, но мне все еще любопытно, что является причиной такого поведения, поэтому, пожалуйста, не отправляйте ответы, попросите меня сделать это вместо этого. Этот вопрос только для моего понимания.