// UWPのScrollViewerでスクロール位置の同期を行うメモ //http://studio-geek.com/archives/857 private void MyScroll2_ScrollChanged(object sender, ScrollChangedEventArgs e) { //値が双方で異なるときだけ更新 if (e.VerticalOffset != MyScroll1.VerticalOffset) { MyScroll1.ScrollToVerticalOffset(e.VerticalOffset); } if (e.HorizontalOffset != MyScroll1.HorizontalOffset) { MyScroll1.ScrollToHorizontalOffset(e.HorizontalOffset); } }
private void MyImage1_MouseMove(object sender, MouseEventArgs e) { //マウスの移動距離だけスクロールさせる if (e.RightButton == MouseButtonState.Pressed) { MyImage1.Cursor = Cursors.ScrollAll; //今のマウスの座標 var mouseP = e.GetPosition(this); //マウスの移動距離=直前の座標と今の座標の差 var xd = MyPoint.X - mouseP.X; var yd = MyPoint.Y - mouseP.Y; //xd *= 2;//2倍速 //yd *= 2; //移動距離+今のスクロール位置 xd += MyScroll1.HorizontalOffset; yd += MyScroll1.VerticalOffset; //スクロール位置の指定 MyScroll1.ScrollToHorizontalOffset(xd); MyScroll1.ScrollToVerticalOffset(yd); MyPoint = mouseP;//直前の座標を今の座標に変更 } }