From 97b0972fdf76da9e3e0bfcf36474a77c71b6c7d2 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sat, 28 Mar 2026 18:10:28 +0800 Subject: [PATCH] =?UTF-8?q?add:WinRT=E5=A2=A8=E8=BF=B9=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs b/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs index 53819a85..fc73d6dc 100644 --- a/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs +++ b/Ink Canvas/Helpers/WinRtInkShapeRecognizer.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Numerics; using System.Runtime.InteropServices.WindowsRuntime; using System.Threading.Tasks; using System.Windows.Ink; @@ -53,8 +52,13 @@ namespace Ink_Canvas.Helpers foreach (Stroke s in strokes) { var inkStroke = CreateInkStrokeFromWpf(s); - if (inkStroke != null) - analyzer.AddDataForStroke(inkStroke); + if (inkStroke == null) + continue; + + analyzer.AddDataForStroke(inkStroke); + analyzer.SetStrokeDataKind( + inkStroke.Id, + global::Windows.UI.Input.Inking.Analysis.InkAnalysisStrokeKind.Drawing); } await analyzer.AnalyzeAsync().AsTask().ConfigureAwait(false); @@ -97,15 +101,17 @@ namespace Ink_Canvas.Helpers var builder = new global::Windows.UI.Input.Inking.InkStrokeBuilder(); builder.SetDefaultDrawingAttributes(wda); - var inkPoints = new List(stroke.StylusPoints.Count); + var points = new List(stroke.StylusPoints.Count); foreach (StylusPoint sp in stroke.StylusPoints) { var pi = sp.ToPoint(); - inkPoints.Add(new global::Windows.UI.Input.Inking.InkPoint( - new global::Windows.Foundation.Point((float)pi.X, (float)pi.Y), (float)sp.PressureFactor)); + points.Add(new global::Windows.Foundation.Point((float)pi.X, (float)pi.Y)); } - return builder.CreateStrokeFromInkPoints(inkPoints, Matrix3x2.Identity); + if (points.Count == 0) + return null; + + return builder.CreateStroke(points); } private static global::Windows.UI.Input.Inking.Analysis.InkAnalysisInkDrawing FindPrimaryDrawing(