From b19c19d73cfebda3bfd75a0d8bb9678846a643cc Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sat, 28 Mar 2026 19:21:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/Helpers/InkRecognitionManager.cs | 22 +++++-------------- Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs | 14 +----------- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/Ink Canvas/Helpers/InkRecognitionManager.cs b/Ink Canvas/Helpers/InkRecognitionManager.cs index 319a0e97..19be366f 100644 --- a/Ink Canvas/Helpers/InkRecognitionManager.cs +++ b/Ink Canvas/Helpers/InkRecognitionManager.cs @@ -50,21 +50,16 @@ namespace Ink_Canvas.Helpers _modernProcessor = new ModernInkProcessor(); _modernAnalyzer = new ModernInkAnalyzer(); _isModernSystemAvailable = true; - LogHelper.WriteLogToFile( - $"墨迹识别管理器:使用现代化墨迹识别系统 (WinRT) - 进程64位: {Environment.Is64BitProcess}, OS64位: {Environment.Is64BitOperatingSystem}"); } catch (Exception ex) { - LogHelper.WriteLogToFile("WinRT API不可用,回退到IACore: " + ex.Message, LogHelper.LogType.Warning); + LogHelper.WriteLogToFile("WinRT 墨迹初始化失败: " + ex.Message, LogHelper.LogType.Warning); _isModernSystemAvailable = false; _modernProcessor = null; _modernAnalyzer = null; } } - if (!_isModernSystemAvailable) - LogHelper.WriteLogToFile("墨迹识别管理器:使用IACore墨迹识别系统"); - _isInitialized = true; } catch (Exception ex) @@ -86,7 +81,7 @@ namespace Ink_Canvas.Helpers if (ShapeRecognitionRouter.ResolveUseWinRt(mode) && WinRtInkShapeRecognizer.IsApiAvailable) { - return RunWinRtOrLogAsync(strokes); + return RecognizeShapeWinRtOnDispatcherContext(strokes); } var legacy = InkRecognizeHelper.RecognizeShapeIACore(strokes); @@ -99,17 +94,10 @@ namespace Ink_Canvas.Helpers } } - private static async Task RunWinRtOrLogAsync(StrokeCollection strokes) + private static async Task RecognizeShapeWinRtOnDispatcherContext( + StrokeCollection strokes) { - try - { - return await WinRtInkShapeRecognizer.RecognizeShapeAsync(strokes).ConfigureAwait(true); - } - catch (Exception ex) - { - LogHelper.WriteLogToFile("WinRT 墨迹形状识别异常: " + ex, LogHelper.LogType.Error); - return InkShapeRecognitionResult.Empty; - } + return await WinRtInkShapeRecognizer.RecognizeShapeAsync(strokes).ConfigureAwait(true); } public Task CorrectInkAsync( diff --git a/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs b/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs index 3ccf3263..5b320138 100644 --- a/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs +++ b/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs @@ -67,27 +67,16 @@ namespace Ink_Canvas.Helpers } if (added == 0) - { - LogHelper.WriteLogToFile( - "WinRT 形状识别:未能从 WPF 笔迹生成 InkStroke(检查 StylusPoints/DrawingAttributes)。", - LogHelper.LogType.Warning); return InkShapeRecognitionResult.Empty; - } await analyzer.AnalyzeAsync().AsTask().ConfigureAwait(true); var drawing = FindPrimaryDrawing(analyzer); if (drawing == null) - { - LogHelper.WriteLogToFile("WinRT 形状识别:分析完成但未找到 InkAnalysisInkDrawing 节点。", LogHelper.LogType.Trace); return InkShapeRecognitionResult.Empty; - } if (drawing.DrawingKind == global::Windows.UI.Input.Inking.Analysis.InkAnalysisDrawingKind.Drawing) - { - LogHelper.WriteLogToFile("WinRT 形状识别:结果为 Drawing(未识别为规则形状)。", LogHelper.LogType.Trace); return InkShapeRecognitionResult.Empty; - } var name = MapDrawingKindToShapeName(drawing.DrawingKind); if (string.IsNullOrEmpty(name) || name == "Drawing") @@ -105,9 +94,8 @@ namespace Ink_Canvas.Helpers return new InkShapeRecognitionResult(name, centroid, hot, w, h, toRemove); } - catch (Exception ex) + catch (Exception) { - LogHelper.WriteLogToFile("WinRtInkShapeRecognizer 异常: " + ex, LogHelper.LogType.Error); return InkShapeRecognitionResult.Empty; } }