[解決済み] WPFでボタンMouseOverのBackgroundを変更するには?
2022-12-16 05:49:24
質問
私のページには、このXAMLを使ったボタンがあります。
<Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Bottom"
Width="50" Height="50" HorizontalContentAlignment="Left"
BorderBrush="{x:Null}" Foreground="{x:Null}" Margin="50,0,0,0">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Background" Value="Green"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
しかし、マウスをボタンの上に置くと、ボタンの背景がデフォルトのウィンドウズのグレーの背景に変わってしまいます。
何が問題なのでしょうか?
マウスオーバー前と後のボタン画像です。
マウスオーバー前
後です。
どのように解決するのですか?
デフォルトの
MouseOver
の振る舞いを削除するには
Button
を変更する必要があります。
ControlTemplate
. を変更することで
Style
の定義を以下のように変更するとうまくいくでしょう。
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Green"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}" BorderBrush="Black" BorderThickness="1">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
EDIT:数年遅れですが、実はボーダーブラシは入っているボーダーの内側に設定することができるんですね。指摘されていたのかどうかは分かりませんが、そうではないような...。
関連
-
[解決済み] リンクのように動作するHTMLボタンを作成する方法
-
[解決済み】無料のWPFテーマがあれば教えてください。[クローズド]
-
[解決済み] WPFのテキストラップとWrapWithOverflowの比較
-
[解決済み] WPF TemplateBindingとRelativeSource TemplatedParentの比較
-
[解決済み] WPF ListViewの選択範囲オフ
-
[解決済み] WPFとSilverlightの比較[重複]。
-
[解決済み] wpf データグリッドの行セレクタを隠すには?
-
[解決済み] WPF標準のタブコントロールに選択されたタブが変更されたイベントはありますか?
-
[解決済み] ConverterParameterに整数を渡すには?
-
[解決済み] WPF: 画像を元の大きさで表示するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
WPFバインディング(データバインディング)の使用方法
-
[解決済み] SelectedItem、SelectedValue、SelectedValuePathの違いについて
-
[解決済み] Windows 8 ランタイム(WinRT / Windowsストアアプリ / Windows 10 ユニバーサルアプリ)とSilverlightやWPFの比較はどうですか?[クローズド]
-
[解決済み] WPFのテキストラップとWrapWithOverflowの比較
-
[解決済み] WPFバインディングを使用して2つのコマンドパラメータを渡す
-
[解決済み] 16進数の色値からSolidColorBrushを作成する
-
[解決済み] Prism for WPFとは?
-
[解決済み] 読み取り専用のGUIプロパティをViewModelにプッシュバックする
-
[解決済み] WPFのスライダーを整数の位置にのみスナップさせる方法とは?
-
[解決済み] WPFの星は何をしているのか(Width="100*")