2016-04-28 3 views
1

Я пытаюсь анимировать LinearGradientBrush моего шаблона. Я бы хотел изменить цвет фона холста, если клик был выполнен. Событие «Пресса» активируется, но ничего не происходит.ColorAnimation не запускается

 <ControlTemplate x:Key="ButtonTemplate" TargetType="Button"> 
     <Grid> 
      <VisualStateManager.VisualStateGroups> 
       <VisualStateGroup x:Name="CommonStates"> 
        <VisualState x:Name="Normal"/> 
        <VisualState x:Name="MouseOver" /> 
        <VisualState x:Name="Pressed"> 
         <Storyboard AutoReverse="True" Duration="0:0:0.5"> 
          <ColorAnimation Storyboard.TargetName="Form" Storyboard.TargetProperty="(Canvas.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" To="Red" Duration="0:0:0.5" /> 
          <ColorAnimation Storyboard.TargetName="Form" Storyboard.TargetProperty="(Canvas.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" From="Black" To="Red" Duration="0:0:0.5" /> 
         </Storyboard> 
        </VisualState> 
        <VisualState x:Name="Disabled" /> 
       </VisualStateGroup> 
      </VisualStateManager.VisualStateGroups> 

      <Canvas Name="Form" Height="35"> 
       <Canvas.Background> 
        <LinearGradientBrush EndPoint="0.5,0.5" StartPoint="0.5,0"> 
         <GradientStop Color="#FF007FEA" Offset="0"/> 
         <GradientStop Color="#FF004580" Offset="1"/> 
        </LinearGradientBrush> 
       </Canvas.Background> 
      </Canvas> 

      <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" /> 
     </Grid> 
    </ControlTemplate> 

ответ

1

Я вижу x:Key. Если это всего лишь фрагмент вашего шаблона стиля Button, тогда просто удалите этот x: Key, однако, если этот ControlTemplate используется в качестве ресурса, вы просто нажимаете неправильный TargetProperty, так как я уверен, что Canvas Panel., и вы можно просто заменить Storyboard.TargetProperty и проиграть From атрибут в анимации, как показано на рабочем столе ColorAnimation.

<ColorAnimation Duration="0" To="Red" 
       Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[0].(GradientStop.Color)" 
       Storyboard.TargetName="Form"/> 
<ColorAnimation Duration="0" To="Black" 
       Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].(GradientStop.Color)" 
       Storyboard.TargetName="Form"/> 
+0

Да, он используется как источник StaticResource. И Panel.Background работает. благодаря –

 Смежные вопросы

  • Нет связанных вопросов^_^