【问题标题】:Animation Trigger (Storyboard + Trigger) in C#C# 中的动画触发器(故事板 + 触发器)
【发布时间】:2015-06-08 14:42:24
【问题描述】:

我有一个使用 DoubleAnimationUsingKeyFrames 的动画,我需要使用触发器打开动画的第一部分。我该怎么做?

 <Storyboard x:Key="TargetStoryboard">
     <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TargetArea" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
         <SplineDoubleKeyFrame KeyTime="00:00:0.0000000" Value="0.001"/>
         <SplineDoubleKeyFrame KeyTime="00:00:0.6000000" Value="1"/>
         <SplineDoubleKeyFrame KeyTime="00:00:3.6000000" Value="1"/>
         <SplineDoubleKeyFrame KeyTime="00:00:4.3000000" Value="0"/>     
     </DoubleAnimationUsingKeyFrames>

     <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TargetArea" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
         <SplineDoubleKeyFrame KeyTime="00:00:0.0000000" Value="-60"/>
         <SplineDoubleKeyFrame KeyTime="00:00:0.6000000" Value="-222"/>
         <SplineDoubleKeyFrame KeyTime="00:00:3.6000000" Value="-222"/>
         <SplineDoubleKeyFrame KeyTime="00:00:4.8000000" Value="3.35"/>   
     </DoubleAnimationUsingKeyFrames>
  </Storyboard>

一定是这样的,但它不起作用。

<Storyboard x:Key="TargetStoryboard">
            <Trigger Property="dAnimTrigger" Value="True">
                <Trigger.EnterActions>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TargetArea" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
                <SplineDoubleKeyFrame KeyTime="00:00:0.0000000" Value="0.001"/>
                <SplineDoubleKeyFrame KeyTime="00:00:0.6000000" Value="1"/>
                <SplineDoubleKeyFrame KeyTime="00:00:3.6000000" Value="1"/>
                <SplineDoubleKeyFrame KeyTime="00:00:4.3000000" Value="0"/>

            </DoubleAnimationUsingKeyFrames>
                </Trigger.EnterActions>
            </Trigger>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TargetArea" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
                <SplineDoubleKeyFrame KeyTime="00:00:0.0000000" Value="-60"/>
                <SplineDoubleKeyFrame KeyTime="00:00:0.6000000" Value="-222"/>
                <SplineDoubleKeyFrame KeyTime="00:00:3.6000000" Value="-222"/>
                <SplineDoubleKeyFrame KeyTime="00:00:4.8000000" Value="3.35"/>

            </DoubleAnimationUsingKeyFrames>

        </Storyboard>

请帮我解决这个问题。

【问题讨论】:

  • 您已经很接近了,只是缺少&lt;BeginStoryboard&gt;&lt;Storyboard&gt;,如果您快速查看some docs,您会很快看到您丢失的部分。 PS,喜欢这个用户名,因为他是一个偶像。干杯。

标签: c# wpf xaml animation triggers


【解决方案1】:

在 EnterActions 和 ExitActions 中使用 beginstoryboard 更改您的触发器

请查看以下代码:

<Trigger.EnterActions>
            <BeginStoryboard>
              <Storyboard>
                <DoubleAnimation Storyboard.TargetProperty="Opacity"
                  To="1" Duration="0:0:1" />
              </Storyboard>
            </BeginStoryboard>
          </Trigger.EnterActions>
          <Trigger.ExitActions>
            <BeginStoryboard>
              <Storyboard>
                <DoubleAnimation Storyboard.TargetProperty="Opacity"
                  To="0.25" Duration="0:0:1" />
              </Storyboard>
            </BeginStoryboard>
          </Trigger.ExitActions>          
        </Trigger>    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 2010-09-09
    • 2017-02-09
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多