fix:issue #118
This commit is contained in:
@@ -1371,6 +1371,10 @@ namespace Ink_Canvas {
|
|||||||
// 禁用高级橡皮擦系统
|
// 禁用高级橡皮擦系统
|
||||||
DisableAdvancedEraserSystem();
|
DisableAdvancedEraserSystem();
|
||||||
|
|
||||||
|
// 修复:从橡皮擦切换到批注模式时,退出多指书写模式
|
||||||
|
// 这解决了从橡皮擦切换为批注时被锁定为多指书写的问题
|
||||||
|
ExitMultiTouchModeIfNeeded();
|
||||||
|
|
||||||
FloatingbarSelectionBG.Visibility = Visibility.Visible;
|
FloatingbarSelectionBG.Visibility = Visibility.Visible;
|
||||||
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 28);
|
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 28);
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,11 @@ namespace Ink_Canvas {
|
|||||||
private void BtnPen_Click(object sender, RoutedEventArgs e) {
|
private void BtnPen_Click(object sender, RoutedEventArgs e) {
|
||||||
// 禁用高级橡皮擦系统
|
// 禁用高级橡皮擦系统
|
||||||
DisableAdvancedEraserSystem();
|
DisableAdvancedEraserSystem();
|
||||||
|
|
||||||
|
// 修复:从橡皮擦切换到批注模式时,退出多指书写模式
|
||||||
|
// 这解决了从橡皮擦切换为批注时被锁定为多指书写的问题
|
||||||
|
ExitMultiTouchModeIfNeeded();
|
||||||
|
|
||||||
// 如果当前已是批注模式,再次点击弹出批注子面板
|
// 如果当前已是批注模式,再次点击弹出批注子面板
|
||||||
if (penType == 0 && inkCanvas.EditingMode == InkCanvasEditingMode.Ink && !drawingAttributes.IsHighlighter) {
|
if (penType == 0 && inkCanvas.EditingMode == InkCanvasEditingMode.Ink && !drawingAttributes.IsHighlighter) {
|
||||||
return;
|
return;
|
||||||
@@ -119,6 +123,11 @@ namespace Ink_Canvas {
|
|||||||
drawingAttributes.IsHighlighter = false;
|
drawingAttributes.IsHighlighter = false;
|
||||||
drawingAttributes.StylusTip = StylusTip.Ellipse;
|
drawingAttributes.StylusTip = StylusTip.Ellipse;
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
|
|
||||||
|
// 修复:确保从橡皮擦切换到笔时,多指手势功能能正确恢复
|
||||||
|
// 更新lastInkCanvasEditingMode以确保多指手势逻辑正确
|
||||||
|
lastInkCanvasEditingMode = InkCanvasEditingMode.Ink;
|
||||||
|
|
||||||
SetCursorBasedOnEditingMode(inkCanvas);
|
SetCursorBasedOnEditingMode(inkCanvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -364,13 +364,24 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//手势完成后切回之前的状态
|
//手势完成后切回之前的状态
|
||||||
if (dec.Count > 1)
|
// 修复:改进多指手势恢复逻辑,确保从橡皮擦切换到笔时多指手势能正确恢复
|
||||||
if (inkCanvas.EditingMode == InkCanvasEditingMode.None)
|
if (dec.Count > 1) {
|
||||||
|
if (inkCanvas.EditingMode == InkCanvasEditingMode.None) {
|
||||||
if (lastInkCanvasEditingMode != InkCanvasEditingMode.EraseByPoint) {
|
if (lastInkCanvasEditingMode != InkCanvasEditingMode.EraseByPoint) {
|
||||||
inkCanvas.EditingMode = lastInkCanvasEditingMode;
|
inkCanvas.EditingMode = lastInkCanvasEditingMode;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
} else if (dec.Count == 0) {
|
||||||
|
// 当所有触摸点都抬起时,确保正确恢复编辑模式
|
||||||
|
// 这对于从橡皮擦切换到笔后恢复多指手势功能很重要
|
||||||
|
if (inkCanvas.EditingMode == InkCanvasEditingMode.None &&
|
||||||
|
lastInkCanvasEditingMode != InkCanvasEditingMode.None &&
|
||||||
|
lastInkCanvasEditingMode != InkCanvasEditingMode.EraseByPoint) {
|
||||||
|
inkCanvas.EditingMode = lastInkCanvasEditingMode;
|
||||||
|
}
|
||||||
|
}
|
||||||
inkCanvas.Opacity = 1;
|
inkCanvas.Opacity = 1;
|
||||||
|
|
||||||
if (dec.Count == 0)
|
if (dec.Count == 0)
|
||||||
if (lastTouchDownStrokeCollection.Count() != inkCanvas.Strokes.Count() &&
|
if (lastTouchDownStrokeCollection.Count() != inkCanvas.Strokes.Count() &&
|
||||||
!(drawingShapeMode == 9 && !isFirstTouchCuboid)) {
|
!(drawingShapeMode == 9 && !isFirstTouchCuboid)) {
|
||||||
@@ -390,6 +401,8 @@ namespace Ink_Canvas {
|
|||||||
if (e.Manipulators.Count() != 0) return;
|
if (e.Manipulators.Count() != 0) return;
|
||||||
if (drawingShapeMode == 0 && inkCanvas.EditingMode != InkCanvasEditingMode.EraseByPoint) {
|
if (drawingShapeMode == 0 && inkCanvas.EditingMode != InkCanvasEditingMode.EraseByPoint) {
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
|
// 修复:确保多指手势完成后正确更新lastInkCanvasEditingMode
|
||||||
|
lastInkCanvasEditingMode = InkCanvasEditingMode.Ink;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user