我有一个带有滚动查看器的 Metro 风格应用程序。现在我想在用户单击按钮时滚动到某个位置。我试过了:
MainScrollViewer.ScrollToHorizontalOffset(x);
但随后它很快“跳”在那里。我想要一个平滑的动画直到 x。
我有一个带有滚动查看器的 Metro 风格应用程序。现在我想在用户单击按钮时滚动到某个位置。我试过了:
MainScrollViewer.ScrollToHorizontalOffset(x);
但随后它很快“跳”在那里。我想要一个平滑的动画直到 x。
没有开箱即用的 API 可以让您做到这一点。也没有可以用动画定位的属性。您需要使用基于帧的动画(基本上确定您在时间轴中的位置以及每个 CompositionTarget.Rendering 事件的位置 - 更新偏移量)或创建一个附加的依赖属性,该属性在其值更改时调用 ScrollToHorizontalOffset 并将该属性定位为动画。
您可以创建一个运行异步的方法并具有一个递增 ScrollToHorizontalOffset(int x) 的计时器。
说每 500 毫秒它增加 10 像素。