fix:线擦切换至批注的面板弹出及高光显示问题

This commit is contained in:
2025-07-30 13:24:52 +08:00
parent 699666c23b
commit 4f046987c6
2 changed files with 56 additions and 1 deletions
@@ -700,6 +700,9 @@ namespace Ink_Canvas {
// AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardDeleteIcon);
//}
//else {
// 禁用高级橡皮擦系统
DisableAdvancedEraserSystem();
forceEraser = true;
forcePointEraser = false;
@@ -707,6 +710,11 @@ namespace Ink_Canvas {
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
drawingShapeMode = 0;
// 修复:切换到线擦时,确保重置笔的状态
penType = 0;
drawingAttributes.IsHighlighter = false;
drawingAttributes.StylusTip = StylusTip.Ellipse;
inkCanvas_EditingModeChanged(inkCanvas, null);
CancelSingleFingerDragMode();
@@ -1378,6 +1378,10 @@ namespace Ink_Canvas {
FloatingbarSelectionBG.Visibility = Visibility.Visible;
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 28);
// 记录当前是否已经是批注模式且是否为高光显示模式
bool wasInInkMode = inkCanvas.EditingMode == InkCanvasEditingMode.Ink;
bool wasHighlighter = drawingAttributes.IsHighlighter;
if (Pen_Icon.Background == null || StackPanelCanvasControls.Visibility == Visibility.Collapsed) {
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
@@ -1411,11 +1415,37 @@ namespace Ink_Canvas {
//AnimationsHelper.ShowWithSlideFromLeftAndFade(StackPanelCanvasControls);
CheckEnableTwoFingerGestureBtnVisibility(true);
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
// 修复:从线擦切换到批注时,重置为默认笔模式(非高光显示)
forceEraser = false;
forcePointEraser = false;
drawingShapeMode = 0;
penType = 0;
drawingAttributes.IsHighlighter = false;
drawingAttributes.StylusTip = StylusTip.Ellipse;
ColorSwitchCheck();
HideSubPanels("pen", true);
}
else {
if (inkCanvas.EditingMode == InkCanvasEditingMode.Ink) {
if (wasInInkMode) {
// 修复:从线擦切换到批注时,确保正确重置状态
if (forceEraser) {
// 从橡皮擦模式切换过来,重置为默认笔模式
forceEraser = false;
forcePointEraser = false;
drawingShapeMode = 0;
penType = 0;
drawingAttributes.IsHighlighter = false;
drawingAttributes.StylusTip = StylusTip.Ellipse;
// 在非白板模式下,从线擦切换到批注时不直接弹出子面板
if (currentMode != 1) {
HideSubPanels("pen", true);
return;
}
}
if (PenPalette.Visibility == Visibility.Visible) {
AnimationsHelper.HideWithSlideAndFade(EraserSizePanel);
AnimationsHelper.HideWithSlideAndFade(BorderTools);
@@ -1451,6 +1481,15 @@ namespace Ink_Canvas {
SaveStrokes();
}
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
// 修复:从线擦切换到批注时,重置为默认笔模式(非高光显示)
forceEraser = false;
forcePointEraser = false;
drawingShapeMode = 0;
penType = 0;
drawingAttributes.IsHighlighter = false;
drawingAttributes.StylusTip = StylusTip.Ellipse;
ColorSwitchCheck();
HideSubPanels("pen", true);
}
@@ -1541,6 +1580,9 @@ namespace Ink_Canvas {
FloatingbarSelectionBG.Visibility = Visibility.Visible;
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 112);
// 禁用高级橡皮擦系统
DisableAdvancedEraserSystem();
forceEraser = true;
forcePointEraser = false;
@@ -1548,6 +1590,11 @@ namespace Ink_Canvas {
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
drawingShapeMode = 0;
// 修复:切换到线擦时,确保重置笔的状态
penType = 0;
drawingAttributes.IsHighlighter = false;
drawingAttributes.StylusTip = StylusTip.Ellipse;
inkCanvas_EditingModeChanged(inkCanvas, null);
CancelSingleFingerDragMode();