fix:几何触摸绘制

This commit is contained in:
2025-08-10 14:08:07 +08:00
parent 7a7289a4c8
commit 8b327fd715
+45 -10
View File
@@ -176,13 +176,20 @@ namespace Ink_Canvas
{ {
await CheckIsDrawingShapesInMultiTouchMode(); await CheckIsDrawingShapesInMultiTouchMode();
EnterShapeDrawingMode(1); EnterShapeDrawingMode(1);
CancelSingleFingerDragMode();
lastMouseDownSender = null; lastMouseDownSender = null;
if (isLongPressSelected)
// 先保存长按状态,避免被CancelSingleFingerDragMode重置
bool wasLongPressed = isLongPressSelected;
CancelSingleFingerDragMode();
if (wasLongPressed)
{ {
if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape(); if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape();
var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0)));
ImageDrawLine.BeginAnimation(OpacityProperty, dA); ImageDrawLine.BeginAnimation(OpacityProperty, dA);
// 恢复长按状态,保持工具选中
isLongPressSelected = true;
} }
DrawShapePromptToPen(); DrawShapePromptToPen();
} }
@@ -191,13 +198,20 @@ namespace Ink_Canvas
{ {
await CheckIsDrawingShapesInMultiTouchMode(); await CheckIsDrawingShapesInMultiTouchMode();
EnterShapeDrawingMode(8); EnterShapeDrawingMode(8);
CancelSingleFingerDragMode();
lastMouseDownSender = null; lastMouseDownSender = null;
if (isLongPressSelected)
// 先保存长按状态,避免被CancelSingleFingerDragMode重置
bool wasLongPressed = isLongPressSelected;
CancelSingleFingerDragMode();
if (wasLongPressed)
{ {
if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape(); if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape();
var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0)));
ImageDrawDashedLine.BeginAnimation(OpacityProperty, dA); ImageDrawDashedLine.BeginAnimation(OpacityProperty, dA);
// 恢复长按状态,保持工具选中
isLongPressSelected = true;
} }
DrawShapePromptToPen(); DrawShapePromptToPen();
} }
@@ -206,13 +220,20 @@ namespace Ink_Canvas
{ {
await CheckIsDrawingShapesInMultiTouchMode(); await CheckIsDrawingShapesInMultiTouchMode();
EnterShapeDrawingMode(18); EnterShapeDrawingMode(18);
CancelSingleFingerDragMode();
lastMouseDownSender = null; lastMouseDownSender = null;
if (isLongPressSelected)
// 先保存长按状态,避免被CancelSingleFingerDragMode重置
bool wasLongPressed = isLongPressSelected;
CancelSingleFingerDragMode();
if (wasLongPressed)
{ {
if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape(); if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape();
var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0)));
ImageDrawDotLine.BeginAnimation(OpacityProperty, dA); ImageDrawDotLine.BeginAnimation(OpacityProperty, dA);
// 恢复长按状态,保持工具选中
isLongPressSelected = true;
} }
DrawShapePromptToPen(); DrawShapePromptToPen();
} }
@@ -221,13 +242,20 @@ namespace Ink_Canvas
{ {
await CheckIsDrawingShapesInMultiTouchMode(); await CheckIsDrawingShapesInMultiTouchMode();
EnterShapeDrawingMode(2); EnterShapeDrawingMode(2);
CancelSingleFingerDragMode();
lastMouseDownSender = null; lastMouseDownSender = null;
if (isLongPressSelected)
// 先保存长按状态,避免被CancelSingleFingerDragMode重置
bool wasLongPressed = isLongPressSelected;
CancelSingleFingerDragMode();
if (wasLongPressed)
{ {
if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape(); if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape();
var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0)));
ImageDrawArrow.BeginAnimation(OpacityProperty, dA); ImageDrawArrow.BeginAnimation(OpacityProperty, dA);
// 恢复长按状态,保持工具选中
isLongPressSelected = true;
} }
DrawShapePromptToPen(); DrawShapePromptToPen();
} }
@@ -236,13 +264,20 @@ namespace Ink_Canvas
{ {
await CheckIsDrawingShapesInMultiTouchMode(); await CheckIsDrawingShapesInMultiTouchMode();
EnterShapeDrawingMode(15); EnterShapeDrawingMode(15);
CancelSingleFingerDragMode();
lastMouseDownSender = null; lastMouseDownSender = null;
if (isLongPressSelected)
// 先保存长按状态,避免被CancelSingleFingerDragMode重置
bool wasLongPressed = isLongPressSelected;
CancelSingleFingerDragMode();
if (wasLongPressed)
{ {
if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape(); if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape();
var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0)));
ImageDrawParallelLine.BeginAnimation(OpacityProperty, dA); ImageDrawParallelLine.BeginAnimation(OpacityProperty, dA);
// 恢复长按状态,保持工具选中
isLongPressSelected = true;
} }
DrawShapePromptToPen(); DrawShapePromptToPen();
} }