Update MW_FloatingBarIcons.cs
This commit is contained in:
@@ -1408,6 +1408,8 @@ namespace Ink_Canvas
|
|||||||
{
|
{
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ResetTouchStates();
|
||||||
});
|
});
|
||||||
}).Start();
|
}).Start();
|
||||||
}
|
}
|
||||||
@@ -2360,7 +2362,11 @@ namespace Ink_Canvas
|
|||||||
|
|
||||||
drawingShapeMode = 0;
|
drawingShapeMode = 0;
|
||||||
|
|
||||||
|
// 这样从线擦切换回批注时,可以恢复之前的荧光笔状态
|
||||||
|
// penType 和 drawingAttributes 的状态将在 PenIcon_Click 中根据 wasHighlighter 来恢复
|
||||||
|
|
||||||
inkCanvas_EditingModeChanged(inkCanvas, null);
|
inkCanvas_EditingModeChanged(inkCanvas, null);
|
||||||
|
CancelSingleFingerDragMode();
|
||||||
|
|
||||||
HideSubPanels("eraserByStrokes");
|
HideSubPanels("eraserByStrokes");
|
||||||
|
|
||||||
@@ -2860,11 +2866,97 @@ namespace Ink_Canvas
|
|||||||
// 恢复非笔画元素
|
// 恢复非笔画元素
|
||||||
RestoreNonStrokeElements(preservedElements);
|
RestoreNonStrokeElements(preservedElements);
|
||||||
|
|
||||||
|
CancelSingleFingerDragMode();
|
||||||
|
|
||||||
if (Settings.Canvas.ClearCanvasAndClearTimeMachine) timeMachine.ClearStrokeHistory();
|
if (Settings.Canvas.ClearCanvasAndClearTimeMachine) timeMachine.ClearStrokeHistory();
|
||||||
|
|
||||||
|
if (Settings.Gesture.IsEnableMultiTouchMode && ToggleSwitchEnableMultiTouchMode != null && ToggleSwitchEnableMultiTouchMode.IsOn)
|
||||||
|
{
|
||||||
|
ReinitializeMultiTouchMode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool lastIsInMultiTouchMode;
|
private bool lastIsInMultiTouchMode;
|
||||||
|
|
||||||
|
private void ReinitializeMultiTouchMode()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!isInMultiTouchMode)
|
||||||
|
{
|
||||||
|
isInMultiTouchMode = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
inkCanvas.TouchDown -= Main_Grid_TouchDown;
|
||||||
|
inkCanvas.TouchDown += MainWindow_TouchDown;
|
||||||
|
inkCanvas.StylusDown += MainWindow_StylusDown;
|
||||||
|
inkCanvas.StylusMove += MainWindow_StylusMove;
|
||||||
|
inkCanvas.StylusUp += MainWindow_StylusUp;
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CancelSingleFingerDragMode()
|
||||||
|
{
|
||||||
|
if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape();
|
||||||
|
|
||||||
|
GridInkCanvasSelectionCover.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
|
if (isSingleFingerDragMode) BtnFingerDragMode_Click(BtnFingerDragMode, null);
|
||||||
|
isLongPressSelected = false;
|
||||||
|
|
||||||
|
ResetTouchStates();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重置所有触摸相关状态,
|
||||||
|
/// </summary>
|
||||||
|
private void ResetTouchStates()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 清空触摸点计数器
|
||||||
|
dec.Clear();
|
||||||
|
|
||||||
|
|
||||||
|
// 重置单指拖动模式状态
|
||||||
|
if (isSingleFingerDragMode)
|
||||||
|
{
|
||||||
|
isSingleFingerDragMode = false;
|
||||||
|
if (BtnFingerDragMode != null)
|
||||||
|
{
|
||||||
|
BtnFingerDragMode.Content = "单指\n拖动";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重置手掌擦状态
|
||||||
|
if (isPalmEraserActive)
|
||||||
|
{
|
||||||
|
isPalmEraserActive = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确保触摸事件能正常响应
|
||||||
|
inkCanvas.IsHitTestVisible = true;
|
||||||
|
inkCanvas.IsManipulationEnabled = true;
|
||||||
|
|
||||||
|
// 释放所有触摸捕获
|
||||||
|
inkCanvas.ReleaseAllTouchCaptures();
|
||||||
|
|
||||||
|
// 恢复UI元素的触摸响应
|
||||||
|
ViewboxFloatingBar.IsHitTestVisible = true;
|
||||||
|
BlackboardUIGridForInkReplay.IsHitTestVisible = true;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogHelper.WriteLogToFile($"重置触摸状态失败: {ex.Message}", LogHelper.LogType.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void BtnHideControl_Click(object sender, RoutedEventArgs e)
|
private void BtnHideControl_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (StackPanelControl.Visibility == Visibility.Visible)
|
if (StackPanelControl.Visibility == Visibility.Visible)
|
||||||
|
|||||||
Reference in New Issue
Block a user