Silverlight 4 - Свойства очистки явного стиля от неявного (особенно шаблона) - PullRequest
1 голос
/ 23 ноября 2011

Если я создаю класс, который наследуется от 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 мой шаблон в моих явных стилях, но мне все еще любопытно, что является причиной такого поведения, поэтому, пожалуйста, не отправляйте ответы, попросите меня сделать это вместо этого. Этот вопрос только для моего понимания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...