BLOGサブスレッドの日常

2016.08.26

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

chao

はじめに

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

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}}"

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

おわりに

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

週刊、ウチのネコ

またたびボールでご満悦

この記事を書いた人

chao