MS Surface上的动画问题

时间:2014-05-21 14:58:08

标签: c# animation windows-runtime

我正试图像这样动画ScrollViewer:

var anim = new DoubleAnimation
{
    From = from,
    To = to,
    Duration = new Duration(TimeSpan.FromMilliseconds(250)),
    EnableDependentAnimation = true
};

// run animation
var sb = new Storyboard();
sb.Children.Add(anim);
Storyboard.SetTarget(anim, SmoothScrollViewer);
Storyboard.SetTargetProperty(anim, "(ScrollViewer.HorizontalOffset)");
sb.Begin();

在桌面上运行时工作正常,但在Surface Pro设备上运行时无法正常工作。看起来loke动画被忽略了,因为如果我将监听器添加到Storyboard.Completed事件,它就会引发。我该如何修复或解决此问题?

1 个答案:

答案 0 :(得分:0)

这不可行,因为HorizontalOffset是只读的。如果您的目标是Windows 8.1,则默认情况下ChangeView方法会动画滚动。如果您的应用需要在8.0上运行,您可以设置其他媒体资源并在该媒体资源的变更处理程序中调用ScrollToHorizontalOffset()(或使用my extensions进行操作)。