79

Silverlightでデフォルトのスタイルに基づいてスタイルを作成するにはどうすればよいですか?

たとえば、WPFでは次のようにします。

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

4 に答える 4

38

ほぼ同じです。x:Typeより明確な命名でマイナス。

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

詳細については、ドキュメントをご覧ください。PS、デフォルトのテンプレートが必要な場合、たとえばTextBoxは通常CoreStyles.xamlにあります

回答を最初に読んだときに混乱した場合に備えて、コメントで要求された補遺。

基本スタイルが必要です。これは、ToolkitStyles.xamlのようなファイルを作成するsilverlightがデフォルトで提供するようなアプリケーションテーマ(wpf / uwpなどにはこれらがありません)で行うことを意図しているため、非常に簡単です。 、SDKStyles.xaml、CoreStyles.xamlなど...これは、回答のstaticresource名が、最初に回答された年のSilverlightバージョンを対象としているために使用された場所です。」

于 2012-10-22T19:19:17.780 に答える
23

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を使用している場合は、代わりに元の質問のコードを使用する方がはるかに簡単です。

于 2014-08-11T13:48:14.883 に答える
17

https://justinmchase.com/2009/05/29/duced-styles-based-on-unnamed-default-styles/をご覧 になることをお勧めします。

<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
于 2020-11-12T17:21:20.153 に答える
-3

私が正しく理解していれば、あなたはOverridesDefaultStyleを探しています

<Style TargetType="{x:Type TextBox}">
      <Setter Property="OverridesDefaultStyle" Value="False" />
      <Setter Property="Margin" Value="2" />
      <Setter Property="Padding" Value="2" />
</Style>
于 2019-05-13T22:29:18.937 に答える