2017-01-30 4 views
0

マウスオーバートリガーがwpfボタンコントロールで機能していません。マウスが上にくるとボタンの背景と前景を変更したいマウスオーバートリガーがwpfボタンコントロールで機能していません

<Button.Style> 
    <Style TargetType="{x:Type Button}"> 
     <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> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Background"> 
       <Setter.Value> 
        <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5"> 
         <GradientStop Color="#FFF2E32F" Offset="0" /> 
         <GradientStop Color="#FF45E815" Offset="1" /> 
        </LinearGradientBrush> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="Foreground" Value="White"/> 
     </Trigger> 
     </Style.Triggers> 
    </Style> 
</Button.Style> 

編集

私はテンプレートを追加しましたが、それは単にボタンのデフォルトのマウスオーバーのトリガーを削除し、私の希望、前景と背景のスタイルを置く取っていません。

+0

この質問をご覧になり、解決方法を試してみましたか? http://stackoverflow.com/questions/17259280/how-do-you-change-background-for-a-button-mouseover-in-wpf –

+0

@RizkiPratamaはい。テンプレートを追加しても何も変わりませんでした。このソリューションは、ボタンのデフォルトのMouseOverトリガーを削除しますが、私の望むフォアグラウンドとバックグラウンドのスタイルは使用しません。 –

+0

もちろん、カスタムコントロールテンプレートで置き換えると、デフォルトのトリガーは削除されます。これは予想される動作です。あなたは正確に何を達成しようとしていますか? 2つの異なるコントロールテンプレートを組み合わせることはできません。 – mm8

答えて

2

hereからの解決策が見つかりました。ボタン内のスタイルを次のように定義します。

<Button.Style> 
    <Style TargetType="{x:Type Button}"> 
     <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"> 
        <Setter.Value> 
         <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5"> 
          <GradientStop Color="#FFF2E32F" Offset="0" /> 
          <GradientStop Color="#FF45E815" Offset="1" /> 
         </LinearGradientBrush> 
        </Setter.Value> 
       </Setter> 
       <Setter Property="Foreground" Value="White"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Button.Style> 
+0

ありがとうございましたが、うまくいきませんでした。 –

+0

@AAAE_Nフルコードをご覧ください。私はそれを自分で試したので、それは私の上で働いた、つまり、トリガー上のマウスが動作している。 –

関連する問題