比如一个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的偏移量并进行一次同步。