0

Wenn Sie die ScrollBar eines ScrollViewers horizontal bewegen, wird der Inhalt des ScrollViewer in kleinen Schritten gescrollt. Wenn die App mit Touch-Interaktion ausgeführt wird, ist das Scrollen ohne irgendwelche Schritte/Lücken flüssig. Wie kann ich mit der Maus ohne Schritte/Lücken scrollen, wie es mit Touch-Interaktion geschieht?Scrollen eines ScrollViewers ohne Schritte/Lücken bei Verwendung der Maus

Desktop: enter image description here

Maus: enter image description here

+0

'ScrollViewer.CanContentScroll =" Falsch "', haben Sie das versucht? –

Antwort

0

Eine Abhilfe ist die ScrollBar des Scroll und verwenden Sie die Klicken und Ziehen der Maus Ereignisse direkt zu verstecken. WaveformScroller ist der ScrollViewer. WaveformCanvas ist das Scroll-Steuerelement.

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); 
}; 
Verwandte Themen