Могут ли UserControls иметь неявные стили в Silverlight? - PullRequest
1 голос
/ 01 июня 2011

Решение: UserControl не является фактическим типом, поэтому я не могу использовать неявные стили в пользовательских элементах управления.Спасибо, Тим.

Следующий неявный стиль, похоже, ничего не делает.

<Style TargetType="UserControl">
    <Setter Property="FontFamily" Value="Webdings"/>
    <Setter Property="Foreground" Value="Red"/>
</Style>

Я знаю, что стили загружаются в словарь ресурсов приложений, потому что, если я явно установлю другой стильв том же файле .xaml он будет работать нормально.

Пример:

<Style TargetType="Control" x:Key="BaseStyle">
    <Setter Property="FontFamily" Value="Webdings"/>
</Style>

Работает нормально, если я добавлю Style = "{StaticResource BaseStyle}" в тег.Спасибо -Шейн

1 Ответ

2 голосов
/ 01 июня 2011

Вам нужно указать фактический тип вашего элемента управления, а не просто использовать UserControl.Неявные стили будут работать только с определенным типом.Поэтому вместо:

<Style TargetType="UserControl">    
    <Setter Property="FontFamily" Value="Webdings"/>    
    <Setter Property="Foreground" Value="Red"/>
</Style>

вы бы использовали:

<Style TargetType="my:MyUserControl">    
    <Setter Property="FontFamily" Value="Webdings"/>    
    <Setter Property="Foreground" Value="Red"/>
</Style>

, где my объявлено как ваше пространство имен, а MyUserControl - фактическое имя класса для вашего производного от UserControlконтроля.

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