2

次のように、画像付きのボタンがあります。

<Button Width="22" Height="22" Command="{Binding PreviousCommand}">                               
  <Button.Template>
    <ControlTemplate>
      <Image Source="C:\Users\abcdef\Desktop\Slide-To-Left-Arrow-24.png"></Image>                            
    </ControlTemplate>
  </Button.Template>
  <Button.InputBindings>
    <KeyBinding Key="Up" Command="{Binding PreviousCommand}" Modifiers="Alt+Shift" />
  </Button.InputBindings>
</Button>

ボタンがクリック可能/フォーカス可能であることを認識するために、マウスオーバー効果を適用したいと考えています。次のようにトリガーを追加しようとしましたが、機能しません:

<ControlTemplate.Triggers>
  <Trigger Property="IsMouseOver" Value="True"> 
    <Setter Property="Background" Value="Black" /> 
  </Trigger>
</ControlTemplate.Triggers>

動いていない。私は何をする必要がありますか?私を助けてください。

4

1 に答える 1

8

この時点では、コントロールテンプレートは画像のみで構成されているため、(トリガーを介して)背景を変更できるものはありません。背景の変更を追加したい場合はControlTemplate、少し拡張する必要があります。次のようなものを試してください。

<Button.Template>
  <ControlTemplate>
    <Grid x:Name="bg">
      <Image Margin="4" Source="C:\Users\dheeraj.dilip.awale\Desktop\Slide-To-Left-Arrow-24.png"></Image>
    </Grid>
    <ControlTemplate.Triggers>
        <Trigger Property="IsMouseOver" Value="True"> 
           <Setter Target="bg" Property="Background" Value="Black" /> 
        </Trigger>
     </ControlTemplate.Triggers>                            
  </ControlTemplate>
</Button.Template>

これは、上に示したトリガーをどのように利用できるかを示す非常に簡単な例です。これは、画像のGrid下にアンダーを追加し、画像にaMarginを追加して、の一部Gridが表示されるようにするだけです。次に、のTargetプロパティを使用して、ユーザーがボタンにカーソルを合わせたときにのSetterを割り当てます。あなたは確かに他のタイプの視覚的な手がかりを提供するためにあなたでもっと多くのことをすることができます、しかしうまくいけばこれはあなたが始めるのを手に入れるでしょう。BackgroundGridControlTemplate

于 2012-08-04T13:28:02.540 に答える