Make use of scroll bars in ScrollViewer

This commit is contained in:
Paddy Xu
2017-07-03 23:50:37 +03:00
parent 847611648c
commit 97e8552e68
2 changed files with 14 additions and 6 deletions

View File

@@ -45,8 +45,8 @@ namespace QuickLook.Plugin.ImageViewer
viewPanel.PreviewMouseWheel += ViewPanel_PreviewMouseWheel; viewPanel.PreviewMouseWheel += ViewPanel_PreviewMouseWheel;
viewPanel.PreviewMouseLeftButtonDown += ViewPanel_PreviewMouseLeftButtonDown; viewPanel.MouseLeftButtonDown += ViewPanel_MouseLeftButtonDown;
viewPanel.PreviewMouseMove += ViewPanel_PreviewMouseMove; viewPanel.MouseMove += ViewPanel_MouseMove;
} }
private void LoadImage(string path) 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); _dragInitPos = e.GetPosition(viewPanel);
var temp = _dragInitPos.Value; // Point is a type value var temp = _dragInitPos.Value; // Point is a type value
temp.Offset(viewPanel.HorizontalOffset, viewPanel.VerticalOffset); temp.Offset(viewPanel.HorizontalOffset, viewPanel.VerticalOffset);
_dragInitPos = temp; _dragInitPos = temp;
} }
private void ViewPanel_PreviewMouseMove(object sender, MouseEventArgs e) private void ViewPanel_MouseMove(object sender, MouseEventArgs e)
{ {
if (!_dragInitPos.HasValue) if (!_dragInitPos.HasValue)
return; return;
if (e.LeftButton == MouseButtonState.Released) if (e.LeftButton == MouseButtonState.Released)
{ {
e.MouseDevice.Capture(null);
_dragInitPos = null; _dragInitPos = null;
return; return;
} }

View File

@@ -250,8 +250,8 @@ namespace QuickLook.Plugin.PDFViewer
pageViewPanel.PreviewMouseWheel += NavigatePage; pageViewPanel.PreviewMouseWheel += NavigatePage;
StartMouseWhellDelayedZoomMonitor(pageViewPanel); StartMouseWhellDelayedZoomMonitor(pageViewPanel);
pageViewPanel.PreviewMouseLeftButtonDown += DragScrollStart; pageViewPanel.MouseLeftButtonDown += DragScrollStart;
pageViewPanel.PreviewMouseMove += DragScrolling; pageViewPanel.MouseMove += DragScrolling;
} }
private void DragScrolling(object sender, MouseEventArgs e) private void DragScrolling(object sender, MouseEventArgs e)
@@ -261,6 +261,8 @@ namespace QuickLook.Plugin.PDFViewer
if (e.LeftButton == MouseButtonState.Released) if (e.LeftButton == MouseButtonState.Released)
{ {
e.MouseDevice.Capture(null);
_dragInitPos = null; _dragInitPos = null;
return; return;
} }
@@ -275,6 +277,8 @@ namespace QuickLook.Plugin.PDFViewer
private void DragScrollStart(object sender, MouseButtonEventArgs e) private void DragScrollStart(object sender, MouseButtonEventArgs e)
{ {
e.MouseDevice.Capture(pageViewPanel);
_dragInitPos = e.GetPosition(pageViewPanel); _dragInitPos = e.GetPosition(pageViewPanel);
var temp = _dragInitPos.Value; // Point is a type value var temp = _dragInitPos.Value; // Point is a type value
temp.Offset(pageViewPanel.HorizontalOffset, pageViewPanel.VerticalOffset); temp.Offset(pageViewPanel.HorizontalOffset, pageViewPanel.VerticalOffset);