设为首页 加入收藏

TOP

背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别(三)
2017-10-10 12:46:35 】 浏览:9135
Tags:背水一战 Windows 控件 媒体 InkCanvas 保存 加载 手写 识别
* InkStrokeContainer - 用于管理涂鸦 * UpdateRecognitionResults(IReadOnlyList<InkRecognitionResult> recognitionResults) - 将指定的识别结果通知给 InkStrokeContainer(此时 InkStrokeContainer 中被识别的 InkStroke 的 Recognized 将被标记为 true) * 如果使用的是 InkRecognitionTarget.All 则 InkStrokeContainer 中的所有的 InkStroke 的 Recognized 将被标记为 true * 如果使用的是 InkRecognitionTarget.Selected 则 InkStrokeContainer 中的被选中的 InkStroke 的 Recognized 将被标记为 true * GetRecognitionResults() - 返回之前通过 UpdateRecognitionResults 方法设置的数据 * * InkStroke - 涂鸦对象(这是一次的涂鸦对象,即鼠标按下后移动然后再抬起后所绘制出的涂鸦) * Recognized - 此 InkStroke 是否被识别了 * Selected - 此 InkStroke 是否被选中了
*/ using System; using System.Collections.Generic; using System.Diagnostics; using Windows.Foundation; using Windows.UI; using Windows.UI.Core; using Windows.UI.Input.Inking; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; namespace Windows10.Controls.MediaControl { public sealed partial class InkCanvasDemo4 : Page { public InkCanvasDemo4() { this.InitializeComponent(); inkCanvas.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Pen | CoreInputDeviceTypes.Touch; InkDrawingAttributes drawingAttributes = inkCanvas.InkPresenter.CopyDefaultDrawingAttributes(); drawingAttributes.IgnorePressure = true; drawingAttributes.Color = Colors.Red; drawingAttributes.Size = new Size(4, 4); inkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes); } private async void recognize_Click(object sender, RoutedEventArgs e) { if (inkCanvas.InkPresenter.StrokeContainer.GetStrokes().Count == 0) return; InkRecognizerContainer container = new InkRecognizerContainer(); lblMsg.Text = "手写识别器: "; lblMsg.Text += Environment.NewLine; // 获取当前支持的手写识别器列表,如果有多个的话可以通过 SetDefaultRecognizer 方法来指定默认的手写识别器 IReadOnlyList<InkRecognizer> recognizers = container.GetRecognizers(); foreach (InkRecognizer ir in recognizers) { lblMsg.Text += ir.Name; lblMsg.Text += Environment.NewLine; } lblMsg.Text += Environment.NewLine; lblMsg.Text += "识别结果: "; lblMsg.Text += Environment.NewLine; IReadOnlyList<InkRecognitionResult> result = await container.RecognizeAsync(inkCanvas.InkPresenter.StrokeContainer, InkRecognitionTarget.All); foreach (string textCandidate in result[0].GetTextCandidates()) { lblMsg.Text += textCandidate; lblMsg.Text += Environment.NewLine; } // 将识别结果通知给 InkStrokeContainer inkCanvas.InkPresenter.StrokeContainer.UpdateRecognitionResults(result); // 识别结果通知给 InkStrokeContainer 后,被识别的 InkStroke 的 Recognized 将被标记为 true // 如果在识别的时候使用的是 InkRecognitionTarget.All 则所有的 InkStroke 的 Recognized 将被标记为 true // 如果在识别的时候使用的是 InkRecognitionTarget.Selected 则被选中的 InkStroke 的 Recognized 将被标记为 true IReadOnlyList<InkStroke> strokes = inkCanvas.InkPresenter.StrokeContainer.GetStrokes(); foreach (InkStroke stroke in strokes) { Debug.WriteLine("stroke.Recognized: " + stroke.Recognized); } // 这个获取到的就是之前通过 InkStrokeContainer 方式设置的数据 result = inkCanvas.InkPresenter.StrokeContainer.GetRecognitionResults(); } } }



OK
[源码下载]

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Fiddler 抓包https配置 提示creat.. 下一篇C#连接数据库MD5数据库加密

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目