2011-01-26 71 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

我看不出有什麼明顯的錯誤和我使用您發佈的代碼創建的示例項目工作得很好。也許你可以用它來尋找您的問題

<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> 

更新的

我嘗試添加mouseLeave事件以及源和它仍然工作。

更新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

感謝我發現的錯誤: 如果我也有一個鼠標離開,事件這是行不通的。你知道嗎? – 2011-01-26 21:18:51