2011-01-26 13 views
0

左のマウスボタンのボーダーの背景を変更しようとしています。ボタン私はそれを取得しません。もちろん、私の勾配には3つのストップがあります。WPFボーダーの背景の変更OnMouseDown

Eventtrigger:

<EventTrigger RoutedEvent="UIElement.PreviewMouseLeftButtonDown" SourceName="border"> 
    <BeginStoryboard x:Name="MouseDown_BeginStoryboard" Storyboard="{StaticResource OnMouseDown}"/> 
</EventTrigger> 

絵コンテ:

<Storyboard x:Key="OnMouseDown"> 
    <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[0].Color" To="Red" /> 
    <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[1].Color" To="Red" /> 
    <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[2].Color" To="Red" /> 
</Storyboard> 

誰でも間違いを見れば教えてください;)

答えて

1

私は、任意の明らかなエラーを見ていません投稿したコードを使用して作成したサンプルプロジェクトはうまく動作します。たぶん、あなたは私もMouseLeaveイベントを追加しようとしました

問題

<Window.Resources> 
    <Storyboard x:Key="OnMouseDown"> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[0].Color" 
         To="Red" /> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[1].Color" 
         To="Red" /> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[2].Color" 
         To="Red" /> 
    </Storyboard> 
</Window.Resources> 
<Grid> 
    <Border Name="border"> 
     <Border.Background> 
      <LinearGradientBrush> 
       <GradientStop Color="Red" Offset="0"/> 
       <GradientStop Color="Green" Offset="0.5"/> 
       <GradientStop Color="Blue" Offset="1.0"/> 
      </LinearGradientBrush> 
     </Border.Background> 
     <Border.Triggers> 
      <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown" 
          SourceName="border"> 
       <BeginStoryboard x:Name="MouseDown_BeginStoryboard" 
           Storyboard="{StaticResource OnMouseDown}"/> 
      </EventTrigger> 
     </Border.Triggers> 
    </Border> 
</Grid> 

アップデートのソースを見つけるためにそれを使用することができますし、それはまだ働いています。

アップデート2

追加のMouseEnter

<Window.Resources> 
    <Storyboard x:Key="OnMouseDown"> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[0].Color" 
         To="Red" /> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[1].Color" 
         To="Red" /> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[2].Color" 
         To="Red" /> 
    </Storyboard> 
    <Storyboard x:Key="OnMouseLeave"> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[0].Color" 
         To="Blue" /> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[1].Color" 
         To="Blue" /> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[2].Color" 
         To="Blue" /> 
    </Storyboard> 
    <Storyboard x:Key="OnMouseEnter"> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[0].Color" 
         To="Green" /> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[1].Color" 
         To="Green" /> 
     <ColorAnimation Duration="0:0:0.15" 
         Storyboard.TargetName="border" 
         Storyboard.TargetProperty="Background.GradientStops[2].Color" 
         To="Green" /> 
    </Storyboard> 
</Window.Resources> 
<Grid> 
    <Border Name="border"> 
     <Border.Background> 
      <LinearGradientBrush> 
       <GradientStop Color="Red" Offset="0"/> 
       <GradientStop Color="Green" Offset="0.5"/> 
       <GradientStop Color="Blue" Offset="1.0"/> 
      </LinearGradientBrush> 
     </Border.Background> 
     <Border.Triggers> 
      <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown" SourceName="border"> 
       <BeginStoryboard x:Name="MouseDown_BeginStoryboard" Storyboard="{StaticResource OnMouseDown}"/> 
      </EventTrigger> 
      <EventTrigger RoutedEvent="MouseLeave" SourceName="border"> 
       <BeginStoryboard x:Name="MouseLeave_BeginStoryboard" Storyboard="{StaticResource OnMouseLeave}"/> 
      </EventTrigger> 
      <EventTrigger RoutedEvent="MouseEnter" SourceName="border"> 
       <BeginStoryboard x:Name="MouseEnter_BeginStoryboard" Storyboard="{StaticResource OnMouseEnter}"/> 
      </EventTrigger> 
     </Border.Triggers> 
    </Border> 
</Grid> 
+0

私は間違いを見つけありがとう: 私もMouseLeaveイベントを持っている場合、それは動作しません。あなたはyを知っていますか? –

+0

@トーマススプレンジャー:私はMouseLeaveトリガーも追加しようとしましたが、それはまだ動作しています、私の答えを更新しました。その問題を再現するサンプルコードを追加できますか?そうでなければ、それは難しいと伝える –

+0

あなたも追加してくださいmouseEnterしてください?それは私の場合です! –

関連する問題