ゴール ボタン背景onMouseEnterのデフォルトの動作を何もしないで、アプリケーションのロジックのボタンバックグラウンドをプログラム的に変更できます。IsMouseOverをオーバーライドし、WPFのロジックに基づいて背景色を変更します。ボタン
複数のポストは、デフォルトのマウスオーバーの動作をオーバーライド住所:
例:How do you disable MouseOver effects on a Button in WPF?
しかし、私のアプリケーションでは、私はトリガーが私の変更をオーバーライドすると、背景色を変更すると、マウスオーバーの背景色を設定しておく必要があります。 App.xaml
<Style x:Key="mainButton" TargetType="{x:Type Button}">
<Setter Property="Width" Value="250"/>
<Setter Property="Height" Value="75"/>
<Setter Property="FontSize" Value="40"/>
<Setter Property="FontFamily" Value="Segoe UI Light"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Name="Border" BorderThickness="1"
BorderBrush="#404040">
<ContentPresenter Margin="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
RecognizesAccessKey="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Border"
Property="Background" Value="{x:Null}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ロジックで
<Button Content="Start" Name="buttonStart" Style="{StaticResource mainButton}" PreviewMouseDown="buttonStart_MouseDown"/>
<Button Content="Stop" Name="buttonStop" Style="{StaticResource mainButton}" PreviewMouseDown="buttonStop_MouseDown"/>
スタイル:
private void buttonStop_MouseDown(object sender, RoutedEventArgs e)
{
//Change background colors for buttonStop and buttonStart
}
private void buttonStart_MouseDown(object sender, RoutedEventArgs e)
{
//Change background colors for buttonStop and buttonStart
}
どのように私はボタンの背景が依然としてコードで背景を変更onMouseEnter、何もしない作るのですか?
なぜあなただけのトリガを削除しませんか? – vesan
トリガーを削除することはできますが、デフォルトのmouseOverエフェクトを削除するにはいくつかの方法が必要です – johnjk07