Silverlightでデフォルトのスタイルに基づいてスタイルを作成するにはどうすればよいですか?
たとえば、WPFでは次のようにします。
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Margin" Value="2" />
<Setter Property="Padding" Value="2" />
</Style>
Silverlightでデフォルトのスタイルに基づいてスタイルを作成するにはどうすればよいですか?
たとえば、WPFでは次のようにします。
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Margin" Value="2" />
<Setter Property="Padding" Value="2" />
</Style>
ほぼ同じです。x:Type
より明確な命名でマイナス。
<Style TargetType="TextBox" BasedOn="{StaticResource DefaultTextBoxStyle}">
詳細については、ドキュメントをご覧ください。PS、デフォルトのテンプレートが必要な場合、たとえばTextBoxは通常CoreStyles.xamlにあります
回答を最初に読んだときに混乱した場合に備えて、コメントで要求された補遺。
「基本スタイルが必要です。これは、ToolkitStyles.xamlのようなファイルを作成するsilverlightがデフォルトで提供するようなアプリケーションテーマ(wpf / uwpなどにはこれらがありません)で行うことを意図しているため、非常に簡単です。 、SDKStyles.xaml、CoreStyles.xamlなど...これは、回答のstaticresource名が、最初に回答された年のSilverlightバージョンを対象としているために使用された場所です。」
Silverlightの場合のみ:
デフォルトのスタイルに基づいてスタイルを作成するには、名前付きのスタイルを作成してから、名前付きのスタイルに基づいてデフォルトのスタイルを作成する必要があります(http://weblogs.asp.net/lduveau/silverlight-how-to-inherit-from -暗黙的なスタイル)
<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}" />
WPFを使用している場合は、代わりに元の質問のコードを使用する方がはるかに簡単です。
https://justinmchase.com/2009/05/29/duced-styles-based-on-unnamed-default-styles/をご覧 になることをお勧めします。
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
私が正しく理解していれば、あなたはOverridesDefaultStyleを探しています
<Style TargetType="{x:Type TextBox}">
<Setter Property="OverridesDefaultStyle" Value="False" />
<Setter Property="Margin" Value="2" />
<Setter Property="Padding" Value="2" />
</Style>