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

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

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

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

Ответ 1

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

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

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

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

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

Ответ 2

Чтобы создать стиль, основанный на стиле по умолчанию, вам нужно создать именованный стиль, а затем создать стиль по умолчанию, основанный на названном стиле (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}" />

Ответ 3

Если я правильно понимаю, вы ищете OverridesDefaultStyle

<Style TargetType="{x:Type TextBox}">
      <Setter Property="OverridesDefaultStyle" Value="False" />
      <Setter Property="Margin" Value="2" />
      <Setter Property="Padding" Value="2" />
</Style>