WP中的两个ScrollViewer同步效果

比如一个ScrollViewer进行拖拽时,另一个ScrollViewer也实时跟着移动,而不是拖动结束后再对齐。

SilverLight中ScrollViewer有个ScrollChanged事件,但是到了WP中就没有这个事件。

在微软Q&A中有几种实现方法。

一种是用WP7自带的几种事件去模拟ScrollChanged事件的效果

private void LayoutUpdated(object sender, EventArgs e)
{
    this.TableView.ScrollToHorizontalOffset(this.View.HorizontalOffset);
}

private void MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    this.TableView.ScrollToHorizontalOffset(this.View.HorizontalOffset);
}

private void TableDataView_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    this.TableView.ScrollToHorizontalOffset(this.View.HorizontalOffset);
}

 另外一种思路,stackoverflow里提到的,就是用计时器,相隔很短时间就检测一次两个ScrollViewer的偏移量并进行一次同步。

 

posted @ 2013-03-28 15:21  韶纥  阅读(710)  评论(1编辑  收藏  举报