しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Style の罠

見事に嵌ってしまったのでメモしておく。
優先順位が "Setter や Trigger で変更した値 < スタイルを適用する要素で指定された値" なので

<Button Background="Blue" Content="Button">
    <Button.Style>
        <Style.Triggers>
            <DataTrigger Binding="{Binding ...}" Value="...">
                <Setter Property="Background" Value="Red"/>
            </DataTrigger>
        </Style.Triggers>
    </Button.Style>
</Button>

というように書いてしまうと、トリガー内の Setter で指定した値が反映されなくなります。なので、変更する値は Setter で指定する方がよさそうです。