我正试图像这样动画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事件,它就会引发。我该如何修复或解决此问题?
答案 0 :(得分:0)
这不可行,因为HorizontalOffset
是只读的。如果您的目标是Windows 8.1,则默认情况下ChangeView
方法会动画滚动。如果您的应用需要在8.0上运行,您可以设置其他媒体资源并在该媒体资源的变更处理程序中调用ScrollToHorizontalOffset()
(或使用my extensions进行操作)。