アプリで WPF ボタンをクリックすると、青く光ったり、元の色に戻ったり、青に戻ったりします。これは、Windows Vista/7 のデフォルトの動作のようです。XPでは発生しません。何かアドバイス?
10282 次
2 に答える
9
デフォルトのボタン テンプレートをオーバーライドする必要があります。
具体的にはセクション 3:
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="#FF4788c8" />
<Setter Property="Foreground" Value="#FF4788c8" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" >
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1" >
<GradientStop Color="#FFFFD190" Offset="0.35"/>
<GradientStop Color="Orange" Offset="0.95"/>
<GradientStop Color="#FFFFD190" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter TargetName="content" Property="RenderTransform" >
<Setter.Value>
<TranslateTransform Y="1.0" />
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsDefaulted" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="#FF282828" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="#FF282828" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="border" Property="Opacity" Value="0.7" />
<Setter Property="Foreground" Value="Gray" />
</Trigger>
</ControlTemplate.Triggers>
于 2010-02-16T20:03:11.897 に答える
2
をオーバーライドする必要がありますControlTemplate
。それ以外の場合は、トリガーを使用して、マウスをその上に置くなどのイベントに色を設定しています。単純に を設定するとBackground
、 が行われていないときにのみデフォルトの背景が設定Trigger
されます。
于 2010-02-16T20:05:47.913 に答える