Как создать стиль на основе стиля по умолчанию?


Как создать стиль на основе стиля по умолчанию в Silverlight?

например, в WPF мы делаем это так:

<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
  <Setter Property="Margin" Value="2" />
  <Setter Property="Padding" Value="2" />
</Style>
2 54

2 ответа:

* * прочитайте комментарии, прежде чем идти вниз.

почти то же самое. Просто минус X: тип с более явным именованием.

<Style TargetType="TextBox" BasedOn="{StaticResource DefaultTextBoxStyle}">

дополнительная информация здесь в документации. PS, Если вам нужны шаблоны по умолчанию, TextBox, например, обычно находится в CoreStyles.xaml

добавление, как указано в комментариях, если вы запутались при первом чтении ответа;

"вам нужен базовый стиль, который действительно легко сделать, как вы должны сделать это в теме приложения (SILVERLIGHT, wpf/uwp и т.д. не будет иметь их), который создает файлы, такие как ToolkitStyles.xaml, SDKStyles.xaml, CoreStyles.xaml и др... Вот откуда взялось имя в ответе"

чтобы создать стиль на основе стиля по умолчанию, необходимо создать именованный стиль, а затем создать стиль по умолчанию на основе именованного стиля (http://weblogs.asp.net/lduveau/silverlight-how-to-inherit-from-an-implicit-style)

<Style x:Key="DefaultCustomControlStyle" TargetType="local:CustomControl">
    <Setter Property="Padding" Value="2" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:CustomControl">
                <ContentPresenter />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
<Style TargetType="local:CustomControl" BasedOn="{StaticResource DefaultCustomControlStyle}" />