logo サブスレッド

WPFでスタイル定義した時に元のスタイルを残したい

はじめに

金曜担当のしみずです。どうぞよろしく。
また連続なのですが気にしないでおきます。

Windowsアプリの開発をWPFで行っているのですがプロジェクト全体に適用されているスタイルに対して
少しだけスタイルを変更したいと思い、スタイルを変更したら適用されているスタイルがWPFのデフォルトに戻ってしまいました。
これを戻らないようにする方法を調べましたので書き置きします。

バージョンあれこれ

Visual Studio 2015 Professional
.NET Framework 4.5

やり方

BasedOn という属性を使います。
例えばボタンの枠線の色と太さだけを変えたい場合はこんな感じ。

<Button Content="OK" HorizontalAlignment="Center" Padding="4" Click="ButtonOK_Click" >
    <Button.Style>
        <Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}"> ←これ
            <Setter Property="BorderThickness" Value="2" />
            <Setter Property="BorderBrush" Value="Red" />
        </Style>
    </Button.Style>
</Button>

Style を指定するときに親のスタイルをどれにするかという指定をしてあげれば良いということです。

BasedOn="{StaticResource {x:Type Button}}"

この部分がその指定ですね。

おわりに

毎回、事あるごとにやり方を調べていたので、ブログに残しておけばこれからはブログを見れば良い!便利!

週刊、ウチのネコ

またたびボールでご満悦

現在の位置:サブスレッド ホーム > 技術ブログ > WPFでスタイル定義した時に元のスタイルを残したい