【发布时间】:2012-08-31 17:33:16
【问题描述】:
我有一个带有滚动查看器的 Metro 风格应用。现在我想在用户单击按钮时滚动到某个位置。我试过了:
MainScrollViewer.ScrollToHorizontalOffset(x);
但是它很快就“跳”到了那里。我想要一个流畅的动画直到 x。
【问题讨论】:
标签: c# xaml windows-8 microsoft-metro scrollview
我有一个带有滚动查看器的 Metro 风格应用。现在我想在用户单击按钮时滚动到某个位置。我试过了:
MainScrollViewer.ScrollToHorizontalOffset(x);
但是它很快就“跳”到了那里。我想要一个流畅的动画直到 x。
【问题讨论】:
标签: c# xaml windows-8 microsoft-metro scrollview
没有开箱即用的 API 可以让您做到这一点。 也没有可以用动画定位的属性。 您需要使用基于帧的动画(基本上确定您在时间轴中的位置以及每个 CompositionTarget.Rendering 事件的位置 - 更新偏移量)或创建一个附加的依赖属性,该属性在其值更改时调用 ScrollToHorizontalOffset 并将该属性定位为动画。
【讨论】:
您可以创建一个运行异步的方法并具有一个递增 ScrollToHorizontalOffset(int x) 的计时器。
假设它每 500 毫秒增加 10 像素。
【讨论】: