0

我在 windows phone 7 中使用以下代码为 a 设置动画CompositeTransform

        var da = new DoubleAnimationUsingKeyFrames() ;
        _storyboard.Children.Add (da);
        _translateXKeyFrame = new EasingDoubleKeyFrame {...}
        da.KeyFrames.Add (_translateXKeyFrame);
        Storyboard.SetTarget (da, _transform);
        Storyboard.SetTargetProperty(da, "TranslateX");

为我使用此代码的属性设置动画:

        _translateXKeyFrame.Value = value;
        _storyboard.Begin ();

不幸的是,此代码不适用于 winrt(动画不运行)。

对于 winrt,有依赖动画和独立动画的概念。如果我设置了EnableDependentAnimation标志,那么动画似乎会运行。问题是,动画仅在用户完成与触摸屏的交互后运行。

我猜这是因为 UI 线程在用户做某事时被阻塞,所以依赖动画不会运行。

EnableDependentAnimation当动画作为独立动画运行时(即设置为 false),为什么动画不起作用?

4

2 回答 2

1

此代码有效。

image1.RenderTransform = new TranslateTransform(); 

animateY = new DoubleAnimation();
animateY.from=0;
animateY.To += 200;
animateY.Duration = TimeSpan.FromMilliseconds(400);

Storyboard.SetTarget(animateY, image1.RenderTransform);
Storyboard.SetTargetProperty(animateY, "TranslateTransform.Y");

_story.Children.Add(animateY);
于 2013-02-17T12:04:46.100 回答
1

EnableDependentAnimation 属性不需要设置动画翻译值。WinRT 始终建议对值进行动画处理,这不会影响布局,因此动画不会阻塞 UI 线程。要为高度/宽度等属性设置动画,必须将 EnableDependentAnimation 设置为 true。

RenderTransform 和投影值可以在不设置此属性的情况下设置动画。

http://www.codeproject.com/Articles/415721/Fast-and-Fluid-Animations-in-your-Windows-UI-App

于 2012-10-01T15:10:25.133 回答