0

マウス操作を使用すると、ScrollViewerのScrollBarを水平方向にドラッグすると、ScrollViewerのコンテンツが小さなスクロールでスクロールされます。アプリがタッチインタラクションを使用して実行されている場合、スクロールはスムーズでステップ/ギャップはありません。タッチインタラクションのように、ステップ/ギャップのないマウスを使用してスクロールするにはどうすればよいですか?マウスを使用するときにステップ/ギャップのないScrollViewerのスクロール

デスクトップ: enter image description here

マウス: enter image description here

+0

'ScrollViewer.CanContentScroll =" False "'、あなたはそれを試しましたか? –

答えて

0

この問題を回避するには、ScrollViewerのスクロールバーのを隠し、直接クリックしてドラッグマウスイベントを使用することです。 WaveformScrollerはScrollViewerです。 WaveformCanvasはスクロールしたコントロールです。

Vector2 lastDragPoint; 
bool pointerPressed; 

WaveformCanvas.PointerPressed += (sender, args) => 
{ 
     WaveformCanvas.CapturePointer(args.Pointer); 
     lastDragPoint = args.GetCurrentPoint((UIElement)sender).Position.ToVector2(); 
     pointerPressed = true; 
}; 

WaveformCanvas.PointerMoved += (sender, args) => 
{ 
    if (pointerPressed) 
    { 
     var newDragPoint = args.GetCurrentPoint((UIElement)sender).Position.ToVector2(); 
     var deltaX = newDragPoint.X - lastDragPoint.X; 
     var newOffset = WaveformScroller.HorizontalOffset - deltaX; 
     WaveformScroller.HorizontalOffset = WaveformScroller.HorizontalOffset - deltaX; 
    } 
}; 

WaveformCanvas.PointerReleased += (sender, args) => 
{ 
    pointerPressed = false; 
    WaveformCanvas.ReleasePointerCapture(args.Pointer); 
}; 
関連する問題