如何确定滚动查看器何时结束滚动?

时间:2014-01-20 12:31:17

标签: wpf c#-4.0 windows-8 winrt-xaml scrollviewer

我需要在用户完成滚动后将滚动查看器调整到某个点。为此,我需要在滚动结束时收听。

iOS的UIScrollView有一些类似的方法

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView that is called when the scrollview

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

我尝试了ViewChangingViewChanged,但同时处理这两个事件的问题是它们一个接一个地发生。如下:

查看更改

视图已更改

查看更改

视图已更改

...

...

而不是 -

查看更改

查看更改

查看更改

查看更改

视图已更改

有什么方法可以在滚动查看器完成滚动或滚动浏览时收到通知吗?

请帮忙。

1 个答案:

答案 0 :(得分:2)

你能做的是:

  • 1.Capture MouseWheel event。
  • 2.在MouseWheel的事件处理程序中激活一个线程,该线程将计算时间来提升您的自定义事件,例如FinishedScrolling
  • 3.如果在计时器结束前引发MouseWheel事件,则表示滚动未完成,您应该终止计时器线程并重新启动它。

怎么样?它不应占用太多代码,如果您使用的是MVVM,则可以使用附加行为。