プロパティペインまたはコードだけを使用して、Blendなしでボタンのデフォルト状態の前景や背景などを編集できますが、Blendなしで他の状態の色を編集することは可能ですか?
たとえば、「マウスオーバー」で灰色に変わるボタンだけが必要です。Stack OverflowやIntertubesで見たものはすべて、Blendを使用しています。それなしでやりたいです。出来ますか?
プロパティペインまたはコードだけを使用して、Blendなしでボタンのデフォルト状態の前景や背景などを編集できますが、Blendなしで他の状態の色を編集することは可能ですか?
たとえば、「マウスオーバー」で灰色に変わるボタンだけが必要です。Stack OverflowやIntertubesで見たものはすべて、Blendを使用しています。それなしでやりたいです。出来ますか?
これを行う簡単な方法は、Style
トリガーを使用することです。
<Style x:Key="HoverButtonStyle" TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Gray"/>
</Trigger>
</Style.Triggers>
</Style>
スタイルはリソースで定義されています。次に、XAMLでボタンを定義するときに、次のようにスタイルを割り当てます。
<Button x:Name="MyButton" Style="{DynamicResource HoverButtonStyle}"/>
このスタイルは、マウスがその上にあるときにBackground
ブラシを変更します。Button
トリガーを使用して実行できるより高度なことはたくさんありますが、これは非常に単純な例です。WPFスタイルトリガーをグーグルで検索すると、かなり徹底的なこの例を含め、多くの例が見つかります。
これを行う方法は他にもあります。たとえば、ここVisualStateManager
で説明するように、を使用しますが、ホバーを変更するだけの場合は、スタイルトリガーがおそらく最も簡単な方法です。Background