Fare etkileşimini kullanarak, ScrollViewer'ın ScrollBar'ını yatay olarak sürüklerken, ScrollViewer'ın içeriği küçük adımlarda kaydırılır. Uygulama dokunmatik etkileşim ile çalıştırılırsa, kaydırma herhangi bir adım/boşluk olmadan sorunsuz olur. Dokunma etkileşimi ile yapıldığı gibi, adımları/boşlukları olmadan fareyi kullanarak nasıl gezinebilirim?Fareyi kullanırken adımlar/boşluklar olmadan bir ScrollViewer kaydırma
0
A
cevap
0
bir geçici çözüm ScrollViewer ait ScrollBar gizlemek ve doğrudan tıklama ve sürükle fare olayları kullanmaktır. WaveformScroller ScrollViewer'dır. WaveformCanvas kaydırılmış kontroldür.
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);
};
ScrollViewer.CanContentScroll = "False", bunu denediniz mi? –