From b7d03d694c168b95ae67260a2d8874e8739cc2ea Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sun, 19 Apr 2026 08:10:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=A2=A8=E8=BF=B9=E7=BA=A0=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/Helpers/InkRecognizeHelper.cs | 6 ++++++ Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs | 3 +++ Ink Canvas/MainWindow.xaml.cs | 3 +++ 3 files changed, 12 insertions(+) diff --git a/Ink Canvas/Helpers/InkRecognizeHelper.cs b/Ink Canvas/Helpers/InkRecognizeHelper.cs index d283aaa5..cb527b78 100644 --- a/Ink Canvas/Helpers/InkRecognizeHelper.cs +++ b/Ink Canvas/Helpers/InkRecognizeHelper.cs @@ -152,6 +152,9 @@ namespace Ink_Canvas.Helpers var node = legacy.InkDrawingNode; var shape = node.GetShape(); + if (shape == null) + return InkShapeRecognitionResult.Empty; + var hot = ClonePointCollection(node.HotPoints); return new InkShapeRecognitionResult( node.GetShapeName(), @@ -173,6 +176,9 @@ namespace Ink_Canvas.Helpers public static bool IsContainShapeType(string name) { + if (string.IsNullOrEmpty(name)) + return false; + if (name.Contains("Triangle") || name.Contains("Circle") || name.Contains("Rectangle") || name.Contains("Diamond") || name.Contains("Parallelogram") || name.Contains("Square") diff --git a/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs b/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs index c39a3621..687d6980 100644 --- a/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs +++ b/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs @@ -124,6 +124,9 @@ namespace Ink_Canvas.Helpers return null; var da = stroke.DrawingAttributes; + if (da == null) + return null; + var wda = new global::Windows.UI.Input.Inking.InkDrawingAttributes { PenTip = global::Windows.UI.Input.Inking.PenTipShape.Circle, diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index cc4921a5..eb72809e 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -3734,6 +3734,9 @@ namespace Ink_Canvas { try { + if (!IsLoaded) + return; + if (Settings.ModeSettings.IsPPTOnlyMode) { if (TrayTemporaryShowUntilUtc.HasValue && DateTime.UtcNow < TrayTemporaryShowUntilUtc.Value)