From 97e8552e689ee735f3a708405be9b423fb88cd25 Mon Sep 17 00:00:00 2001 From: Paddy Xu Date: Mon, 3 Jul 2017 23:50:37 +0300 Subject: [PATCH] Make use of scroll bars in ScrollViewer --- .../QuickLook.Plugin.ImageViewer/ImagePanel.xaml.cs | 12 ++++++++---- .../PdfViewerControl.xaml.cs | 8 ++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/ImagePanel.xaml.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/ImagePanel.xaml.cs index e1742d6..688919b 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/ImagePanel.xaml.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/ImagePanel.xaml.cs @@ -45,8 +45,8 @@ namespace QuickLook.Plugin.ImageViewer viewPanel.PreviewMouseWheel += ViewPanel_PreviewMouseWheel; - viewPanel.PreviewMouseLeftButtonDown += ViewPanel_PreviewMouseLeftButtonDown; - viewPanel.PreviewMouseMove += ViewPanel_PreviewMouseMove; + viewPanel.MouseLeftButtonDown += ViewPanel_MouseLeftButtonDown; + viewPanel.MouseMove += ViewPanel_MouseMove; } private void LoadImage(string path) @@ -68,21 +68,25 @@ namespace QuickLook.Plugin.ImageViewer } } - private void ViewPanel_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) + private void ViewPanel_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { + e.MouseDevice.Capture(viewPanel); + _dragInitPos = e.GetPosition(viewPanel); var temp = _dragInitPos.Value; // Point is a type value temp.Offset(viewPanel.HorizontalOffset, viewPanel.VerticalOffset); _dragInitPos = temp; } - private void ViewPanel_PreviewMouseMove(object sender, MouseEventArgs e) + private void ViewPanel_MouseMove(object sender, MouseEventArgs e) { if (!_dragInitPos.HasValue) return; if (e.LeftButton == MouseButtonState.Released) { + e.MouseDevice.Capture(null); + _dragInitPos = null; return; } diff --git a/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs b/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs index ae8a6e6..30699d8 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs @@ -250,8 +250,8 @@ namespace QuickLook.Plugin.PDFViewer pageViewPanel.PreviewMouseWheel += NavigatePage; StartMouseWhellDelayedZoomMonitor(pageViewPanel); - pageViewPanel.PreviewMouseLeftButtonDown += DragScrollStart; - pageViewPanel.PreviewMouseMove += DragScrolling; + pageViewPanel.MouseLeftButtonDown += DragScrollStart; + pageViewPanel.MouseMove += DragScrolling; } private void DragScrolling(object sender, MouseEventArgs e) @@ -261,6 +261,8 @@ namespace QuickLook.Plugin.PDFViewer if (e.LeftButton == MouseButtonState.Released) { + e.MouseDevice.Capture(null); + _dragInitPos = null; return; } @@ -275,6 +277,8 @@ namespace QuickLook.Plugin.PDFViewer private void DragScrollStart(object sender, MouseButtonEventArgs e) { + e.MouseDevice.Capture(pageViewPanel); + _dragInitPos = e.GetPosition(pageViewPanel); var temp = _dragInitPos.Value; // Point is a type value temp.Offset(pageViewPanel.HorizontalOffset, pageViewPanel.VerticalOffset);