fix:线擦切换至批注的面板弹出及高光显示问题
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user