现在很多人还是使用笔和纸来记录,那么可以在电脑输入方式和之前使用的方式一样,很多用户觉得会方便。在win10 我们有一个简单的方法去让用户输入,InkCanvas
。现在edge,OneNote这些都有使用InkCanvas
,我们可以在我们的手机上手写,我们也可以在我们电脑上用鼠标写,然后我们可以把我们写的保存图片,可以识别文字。
win10 可以很简单在我们的 app 使用自然输入,这篇文章主要翻译https://blogs.windows.com/buildingapps/2015/09/08/going-beyond-keyboard-mouse-and-touch-with-natural-input-10-by-10/ 一些内容是参见陈染大神
做法简单,我们有垃圾微软的InkCanvas
,这个控件可以手写,需要我们在页面使用他:
然后我们就可以写出我们的字,试试使用鼠标在程序写字。下面的不是我写的,是垃圾微软的。
InkPresenter
可以获取 InkCanvas 基础对象,可以设置输入为笔,触摸,鼠标,上面那个是从微软拿来,因为我是在用电脑。
为了画出上面的图,我们可以设置ink_canvas.InkPresenter.InputDeviceTypes= CoreInputDeviceTypes.Mouse;
如果我们有鼠标还要在手机运行,我们可以来|
然后写手机,这样就可以使用多个方法。
如果我们需要输入笔和鼠标 ink_canvas.InkPresenter.InputDeviceTypes= CoreInputDeviceTypes.Mouse|CoreInputDeviceTypes.Pen;
,关于这个枚举,参见C#枚举中使用Flags特性
画出的线我们也可以设置 线大小,颜色,请看代码
保存,修改,加载ink
我们可以给用户选择他当前使用橡皮擦、铅笔还是他需要的。
我们给用户按钮铅笔,橡皮擦
点击时,修改笔为橡皮擦或其他的,只需要设置当前的笔
点击橡皮可以擦掉,但是有些诡异,大家可以自己去写,自己去玩,就知道
接下来告诉大家,如何
保存墨迹
陈染大神的保存,我们上面保存是 gif
保存的东西可以加载,需要加载第一步是获得文件
如何获得文件参见:win10 uwp 保存用户选择文件夹
UWP 手写清理笔画
我们写完一个字需要清理我们笔画,可以使用clear
手写识别
手写识别来自 http://www.wangchenran.com/win10uwp开发-ink.html
但是我们每次需要使用InkCanvas
需要使用很多按钮,微软给了我们Ink Toolbar
可以简单使用。
扩展下载:https://visualstudiogallery.msdn.microsoft.com/58194dfe-df44-4c4e-893a-1eca40675269
首先安装该工具扩展,然后引用InkToolbar Control.dll,接着在View中声明控件:
TargetInkCanvas
属性bind到要设置的InkCanvas
上即可。
无法识别手写
首先我们手写需要安装。
如果我们没法识别,那么检查设置时间语言,检查安装语言,下载手写
那么我们可以使用
来看我们安装了哪些,有安装才能使用
源代码 https://github.com/lindexi/UWP/tree/master/uwp/src/Ink
语音
现在很多人都是使用语音输入,把文字转为语音我已经写了一篇博客。
我们需要先有麦克风,需要权限
首先我们需要设置语言,因为需要的识别,可以使用 web 的接口,所以就需要添加麦克风、网络的权限。
下面的代码就是告诉用户需要输入的内容,然后进行转换。
语音:https://msdn.microsoft.com/zh-cn/library/windows/apps/dn596121.aspx
http://stackoverflow.com/questions/32153880/how-to-render-inkcanvas-to-an-image-in-uwp-windows-10-application/32551620
https://blogs.windows.com/buildingapps/2015/09/08/going-beyond-keyboard-mouse-and-touch-with-natural-input-10-by-10/
原文链接: http://blog.lindexi.com/post/win10-uwp-%E4%BD%BF%E7%94%A8%E6%B2%B9%E5%A2%A8%E8%BE%93%E5%85%A5
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系。