【问题标题】:Apply Easing Function to DiscreteObjectKeyFrame Animation in Windows Phone在 Windows Phone 中对 DiscreteObjectKeyFrame 动画应用缓动函数
【发布时间】:2012-05-26 08:00:34
【问题描述】:
<Storyboard x:Name="stTOPAni">
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="grdOverlay">
            <DiscreteObjectKeyFrame KeyTime="0">
                <DiscreteObjectKeyFrame.Value>
                    <Thickness>0</Thickness>
                </DiscreteObjectKeyFrame.Value>
            </DiscreteObjectKeyFrame>
            <DiscreteObjectKeyFrame x:Name="key1" KeyTime="0:0:0.5">
                <DiscreteObjectKeyFrame.Value>
                    <Thickness>0,-500,0,0</Thickness>
                </DiscreteObjectKeyFrame.Value>

            </DiscreteObjectKeyFrame>
            <DiscreteObjectKeyFrame KeyTime="0:0:1">
                <DiscreteObjectKeyFrame.Value>
                    <Thickness>0,-800,0,0</Thickness>
                </DiscreteObjectKeyFrame.Value>
            </DiscreteObjectKeyFrame>
        </ObjectAnimationUsingKeyFrames>

    </Storyboard>

我想使用这个故事板更改上边距,所以我应用了 KeyFrame 动画,但它没有使用 EasingFunction,因此不流畅,我将如何应用 Easing Function 来使动画流畅!

【问题讨论】:

    标签: silverlight windows-phone-7 xaml animation storyboard


    【解决方案1】:

    在 WPF 中,您可以简单地使用 ...ThicknessKeyFrames 之一。

    <Storyboard x:Name="stTOPAni" Storyboard.TargetProperty="Margin">
        <ThicknessAnimationUsingKeyFrames>
            <DiscreteThicknessKeyFrame KeyTime="0">
                <DiscreteThicknessKeyFrame.Value>
                    <Thickness>0</Thickness>
                </DiscreteThicknessKeyFrame.Value>
            </DiscreteThicknessKeyFrame>
            <EasingThicknessKeyFrame KeyTime="0:0:1">
                <EasingThicknessKeyFrame.EasingFunction>
                    <CubicEase EasingMode="EaseInOut"/>
                </EasingThicknessKeyFrame.EasingFunction>
                <EasingThicknessKeyFrame.Value>
                    <Thickness>0,-800,0,0</Thickness>
                </EasingThicknessKeyFrame.Value>
            </EasingThicknessKeyFrame>
        </ThicknessAnimationUsingKeyFrames>
    </Storyboard>
    

    但不幸的是,在 Silverlight 中,动画不能流畅,因为您必须使用 ObjectAnimationUsingKeyFramesThickness 动画 only supports discrete interpolation methodEasingFunctions 也不支持。

    【讨论】:

      猜你喜欢
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多