fix:线擦切换至批注的面板弹出及高光显示问题
This commit is contained in:
@@ -700,6 +700,9 @@ namespace Ink_Canvas {
|
|||||||
// AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardDeleteIcon);
|
// AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardDeleteIcon);
|
||||||
//}
|
//}
|
||||||
//else {
|
//else {
|
||||||
|
// 禁用高级橡皮擦系统
|
||||||
|
DisableAdvancedEraserSystem();
|
||||||
|
|
||||||
forceEraser = true;
|
forceEraser = true;
|
||||||
forcePointEraser = false;
|
forcePointEraser = false;
|
||||||
|
|
||||||
@@ -707,6 +710,11 @@ namespace Ink_Canvas {
|
|||||||
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
|
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
|
||||||
drawingShapeMode = 0;
|
drawingShapeMode = 0;
|
||||||
|
|
||||||
|
// 修复:切换到线擦时,确保重置笔的状态
|
||||||
|
penType = 0;
|
||||||
|
drawingAttributes.IsHighlighter = false;
|
||||||
|
drawingAttributes.StylusTip = StylusTip.Ellipse;
|
||||||
|
|
||||||
inkCanvas_EditingModeChanged(inkCanvas, null);
|
inkCanvas_EditingModeChanged(inkCanvas, null);
|
||||||
CancelSingleFingerDragMode();
|
CancelSingleFingerDragMode();
|
||||||
|
|
||||||
|
|||||||
@@ -1378,6 +1378,10 @@ namespace Ink_Canvas {
|
|||||||
FloatingbarSelectionBG.Visibility = Visibility.Visible;
|
FloatingbarSelectionBG.Visibility = Visibility.Visible;
|
||||||
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 28);
|
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) {
|
if (Pen_Icon.Background == null || StackPanelCanvasControls.Visibility == Visibility.Collapsed) {
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
|
|
||||||
@@ -1411,11 +1415,37 @@ namespace Ink_Canvas {
|
|||||||
//AnimationsHelper.ShowWithSlideFromLeftAndFade(StackPanelCanvasControls);
|
//AnimationsHelper.ShowWithSlideFromLeftAndFade(StackPanelCanvasControls);
|
||||||
CheckEnableTwoFingerGestureBtnVisibility(true);
|
CheckEnableTwoFingerGestureBtnVisibility(true);
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
|
|
||||||
|
// 修复:从线擦切换到批注时,重置为默认笔模式(非高光显示)
|
||||||
|
forceEraser = false;
|
||||||
|
forcePointEraser = false;
|
||||||
|
drawingShapeMode = 0;
|
||||||
|
penType = 0;
|
||||||
|
drawingAttributes.IsHighlighter = false;
|
||||||
|
drawingAttributes.StylusTip = StylusTip.Ellipse;
|
||||||
|
|
||||||
ColorSwitchCheck();
|
ColorSwitchCheck();
|
||||||
HideSubPanels("pen", true);
|
HideSubPanels("pen", true);
|
||||||
}
|
}
|
||||||
else {
|
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) {
|
if (PenPalette.Visibility == Visibility.Visible) {
|
||||||
AnimationsHelper.HideWithSlideAndFade(EraserSizePanel);
|
AnimationsHelper.HideWithSlideAndFade(EraserSizePanel);
|
||||||
AnimationsHelper.HideWithSlideAndFade(BorderTools);
|
AnimationsHelper.HideWithSlideAndFade(BorderTools);
|
||||||
@@ -1451,6 +1481,15 @@ namespace Ink_Canvas {
|
|||||||
SaveStrokes();
|
SaveStrokes();
|
||||||
}
|
}
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
|
|
||||||
|
// 修复:从线擦切换到批注时,重置为默认笔模式(非高光显示)
|
||||||
|
forceEraser = false;
|
||||||
|
forcePointEraser = false;
|
||||||
|
drawingShapeMode = 0;
|
||||||
|
penType = 0;
|
||||||
|
drawingAttributes.IsHighlighter = false;
|
||||||
|
drawingAttributes.StylusTip = StylusTip.Ellipse;
|
||||||
|
|
||||||
ColorSwitchCheck();
|
ColorSwitchCheck();
|
||||||
HideSubPanels("pen", true);
|
HideSubPanels("pen", true);
|
||||||
}
|
}
|
||||||
@@ -1541,6 +1580,9 @@ namespace Ink_Canvas {
|
|||||||
FloatingbarSelectionBG.Visibility = Visibility.Visible;
|
FloatingbarSelectionBG.Visibility = Visibility.Visible;
|
||||||
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 112);
|
System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 112);
|
||||||
|
|
||||||
|
// 禁用高级橡皮擦系统
|
||||||
|
DisableAdvancedEraserSystem();
|
||||||
|
|
||||||
forceEraser = true;
|
forceEraser = true;
|
||||||
forcePointEraser = false;
|
forcePointEraser = false;
|
||||||
|
|
||||||
@@ -1548,6 +1590,11 @@ namespace Ink_Canvas {
|
|||||||
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
|
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
|
||||||
drawingShapeMode = 0;
|
drawingShapeMode = 0;
|
||||||
|
|
||||||
|
// 修复:切换到线擦时,确保重置笔的状态
|
||||||
|
penType = 0;
|
||||||
|
drawingAttributes.IsHighlighter = false;
|
||||||
|
drawingAttributes.StylusTip = StylusTip.Ellipse;
|
||||||
|
|
||||||
inkCanvas_EditingModeChanged(inkCanvas, null);
|
inkCanvas_EditingModeChanged(inkCanvas, null);
|
||||||
CancelSingleFingerDragMode();
|
CancelSingleFingerDragMode();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user