fix:白板页面预览无法使用触摸

This commit is contained in:
2025-07-21 10:14:21 +08:00
parent 44e331ae96
commit 93bef2e144
4 changed files with 58 additions and 6 deletions
+2 -2
View File
@@ -49,5 +49,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.7.1.6")]
[assembly: AssemblyFileVersion("1.7.1.6")]
[assembly: AssemblyVersion("1.7.1.7")]
[assembly: AssemblyFileVersion("1.7.1.7")]
+6 -2
View File
@@ -3155,7 +3155,9 @@
<ui:ScrollViewerEx Name="BlackBoardLeftSidePageListScrollViewer"
Height="460"
VerticalScrollBarVisibility="Hidden"
ForceUseSmoothScroll="True">
ForceUseSmoothScroll="True"
PanningMode="VerticalOnly"
IsManipulationEnabled="True">
<ListView ScrollViewer.CanContentScroll="False" SelectionMode="Single"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
@@ -5193,7 +5195,9 @@
<ui:ScrollViewerEx Name="BlackBoardRightSidePageListScrollViewer"
Height="460"
VerticalScrollBarVisibility="Hidden"
ForceUseSmoothScroll="True">
ForceUseSmoothScroll="True"
PanningMode="VerticalOnly"
IsManipulationEnabled="True">
<ListView ScrollViewer.CanContentScroll="False" SelectionMode="Single"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
+48
View File
@@ -145,6 +145,54 @@ namespace Ink_Canvas {
InkCanvasGridForInkReplay.Children.Add(firstCanvas);
currentPageIndex = 0;
ShowPage(currentPageIndex);
// 手动实现触摸滑动
double leftTouchStartY = 0;
double leftScrollStartOffset = 0;
bool leftIsTouching = false;
BlackBoardLeftSidePageListScrollViewer.TouchDown += (s, e) => {
leftIsTouching = true;
leftTouchStartY = e.GetTouchPoint(BlackBoardLeftSidePageListScrollViewer).Position.Y;
leftScrollStartOffset = BlackBoardLeftSidePageListScrollViewer.VerticalOffset;
BlackBoardLeftSidePageListScrollViewer.CaptureTouch(e.TouchDevice);
e.Handled = true;
};
BlackBoardLeftSidePageListScrollViewer.TouchMove += (s, e) => {
if (leftIsTouching) {
double currentY = e.GetTouchPoint(BlackBoardLeftSidePageListScrollViewer).Position.Y;
double delta = leftTouchStartY - currentY;
BlackBoardLeftSidePageListScrollViewer.ScrollToVerticalOffset(leftScrollStartOffset + delta);
e.Handled = true;
}
};
BlackBoardLeftSidePageListScrollViewer.TouchUp += (s, e) => {
leftIsTouching = false;
BlackBoardLeftSidePageListScrollViewer.ReleaseTouchCapture(e.TouchDevice);
e.Handled = true;
};
double rightTouchStartY = 0;
double rightScrollStartOffset = 0;
bool rightIsTouching = false;
BlackBoardRightSidePageListScrollViewer.TouchDown += (s, e) => {
rightIsTouching = true;
rightTouchStartY = e.GetTouchPoint(BlackBoardRightSidePageListScrollViewer).Position.Y;
rightScrollStartOffset = BlackBoardRightSidePageListScrollViewer.VerticalOffset;
BlackBoardRightSidePageListScrollViewer.CaptureTouch(e.TouchDevice);
e.Handled = true;
};
BlackBoardRightSidePageListScrollViewer.TouchMove += (s, e) => {
if (rightIsTouching) {
double currentY = e.GetTouchPoint(BlackBoardRightSidePageListScrollViewer).Position.Y;
double delta = rightTouchStartY - currentY;
BlackBoardRightSidePageListScrollViewer.ScrollToVerticalOffset(rightScrollStartOffset + delta);
e.Handled = true;
}
};
BlackBoardRightSidePageListScrollViewer.TouchUp += (s, e) => {
rightIsTouching = false;
BlackBoardRightSidePageListScrollViewer.ReleaseTouchCapture(e.TouchDevice);
e.Handled = true;
};
}
protected override void OnSourceInitialized(EventArgs e)
+2 -2
View File
@@ -49,5 +49,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.7.1.6")]
[assembly: AssemblyFileVersion("1.7.1.6")]
[assembly: AssemblyVersion("1.7.1.7")]
[assembly: AssemblyFileVersion("1.7.1.7")]