WPF 使用Microsoft.Ink 做的墨迹输入法

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

利用微软的Ink,实现手写输入。
不用自带的InkCanvas,重写的绘制的效果。
根据速度调节线条粗细了。其实不算是线条吧,PathGeometry对象。
然后再向Ink引擎传入笔画数据,其实就是点。上两张图



字写的不好看。来看看代码吧

主要代码:

Imports Microsoft.Ink
'Imports System.Windows.Ink

'C:\Program Files (x86)\Common Files\Microsoft Shared\Ink
'添加对 WPF 墨迹分析程序集、IAWinFX.dll、IACore.dll 和 IALoader.dll(这些内容可以在 \Program Files\Reference Assemblies\Microsoft\Tablet PC\v1.7 中找到)的引用。

Structure PointInfo
    Public pt As Point REM 点的位置
    Public dir As Vector REM 与上一个点之间的方向
    Public len As Single REM 上一个点到这个点的距离
    Public perpendicular As Vector REM 与上一个点之间的方向的垂直
    Public Function ToDrawingPoint() As System.Drawing.Point
        Return New System.Drawing.Point(pt.X, pt.Y)
    End Function
End Structure

Class MainWindow
    Private bmp As RenderTargetBitmap REM 渲染到的图片
    Private dv As New DrawingVisual() REM 绘制到图片的visual
    Private geo As PathGeometry REM 一笔 存的所有的path
    Private geos As New List(Of PathGeometry) REM 所有笔划
    Private ptStart As Point REM 起始点
    Private ptEnd As Point REM 终点
    Private ptinfos As New List(Of PointInfo) REM 点的信息

    REM 求垂直与输入向量的向量,顺时针,应该还有更好的写法吧
    Public Function Perpendicular(v As Vector) As Vector
        Dim result As Vector

        If v.Y = 0 And v.X = 1 Then
            Return New Vector(0, -1)
        ElseIf v.Y = 0 And v.X = -1
            Return New Vector(0, 1)
        Else
            If v.Y > 0 Then
                result.X = Math.Sqrt(v.Y * v.Y / (v.X * v.X + v.Y * v.Y))
            Else
                result.X = -Math.Sqrt(v.Y * v.Y / (v.X * v.X + v.Y * v.Y))
            End If
        End If
2021-09-21 WPF上位机 37-手写笔事件 手写笔事件(Stylus) 1、部分功能与鼠标事件同步。MSDN文档中Stylus与鼠标事件同步 2、基本事件 Surface-》触笔 StylusButtonDown StylusButtonUp StylusDown StylusUp StylusEnter StylusLeave StylusMove 3、手写识别 InkCanvas 基于Tablet PC SDK的IAWinFX.dll、IACore.dll 和 IALoader.dll <Window x:Class="Zhaoxi.Ev. 阅读详情

相关推荐

WPF好用的画图控件InkCanvas,画图应用必备

通过以上步骤和示例代码,你可以在 WPF 应用程序中轻松使用 InkCanvas 控件,实现手写输入、绘图和签名等功能。

Zy100Papa的博客 1731

WPF Mircosoft.Ink墨迹手写输入(源码)

WPF使用Microsoft.Ink写的墨迹手写输入器源码。 控制画笔粗细,水墨钢笔风格。 Visual Basic.Net VS2015

WPF高级手写墨迹识别技术实操

Microsoft.Ink 是一个用于 WPF 应用程序中的墨迹识别和处理的类库。它为用户提供了一系列API来处理墨迹数据,包括墨迹的收集、显示、编辑和保存等。在核心组件中,InkCanvasInkToolbar和是最基础和重要的几个类和控件。是 Ink 库的核心,负责墨迹的绘制、编辑以及事件处理。它可以单独使用或者嵌入到InkCanvas中。xml通过代码,可以为添加更多的墨迹处理功能,如启用橡皮擦模式,或者配置笔刷的属性。InkCanvas是一个特殊的控件,它封装了。

weixin_35762258的博客 920

WPF手写输入+虚拟键盘源码

手写输入识别,虚拟键盘中\英文输入,两种模式可自行切换,自带记忆功能。可自行二次开发

C#:Microsoft.Ink 手写识别(HandWriting Recognition)

csharp:Microsoft.Ink 手写识别(HandWriting Recognition) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

城市蜗牛 1万+

C# 实现手写输入功能

在如今这个时代,对这个功能的需求量可能已经很少了,但是这也不妨碍我们或多或少的会碰到一些稀奇古怪的需求,多接触一些总归是没错的。 本篇主要是用到了Microsoft.Ink来实现一个手写输入,也就是类似于手机输入法中的手写功能。 实现功能: 用鼠标或者手指在屏幕上写字并识别输入到文本框 开发环境: 开发工具: Visual Studio 2013 .NET Framework版本:4.5 实现代码: InkCollector ink; RecognizerContext .

qq_27410185的博客 2560

WPF墨迹手写输入器源码:让应用更具人性化的交互体验

WPF墨迹手写输入器源码:让应用更具人性化的交互体验 去发现同类优质开源项目:https://gitcode.com/ WPF墨迹手写输入器源码,一款实现手写输入功能的强大工具,为您的应用程序增添人性化的交互体验。 项目介绍 在这个数字时代,手写输入作为一种直观的交互方式,越来越受到人们的喜爱。WPF墨迹手写输入器源码正是基于这样的需求诞生。它提供了一种简单而高效的方法,让用户在WPF应用程序中实...

gitblog_06757的博客 432

超级好用的KeyBoard WPF软键盘

KeyBoard WPF软键盘 项目背景 系统结构 核心概述 1、用于墨迹识别核心类库 2、中文字库 效果展示 1、拼音检索效果 2、手写识别效果 结

视觉软件 4270

WPF 墨迹手写输入器源码

WPF 墨迹手写输入器源码 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供了一个基于WPFMicrosoft.Ink技术的墨迹手写输入器源码。该输入器能够实现在WPF应用程序中的手写输入功能,支持调整画笔粗细以及水墨钢笔风格,为您的应用程序增添人性化的交互体验。 特点 基于WPF技术,与您的现有WPF应用程序无缝集成。 利用Microsoft.Ink实现手写...

gitblog_06786的博客 373

wpf手写输入

问题起源,参考winform下的手写输入,实现在wpf下面的相同功能,最后发现无法在特点的区域手写输入,造成问题的原因是wpf下获得的控件句柄和整个窗体的句柄是一样的。 最后借用的wpf下面的 InkCanvas,在这里可以手写,然后把它的墨迹转换成微软的ink类: &lt;InkCanvas Name="inkInput" Grid.Column="1" StrokeCollect...

eidolon's blog 2013

microsoft.ink.dll,包括32位的和64位的。

microsoft.ink.dll,包括32位的和64位的。手写识别。

WPF使用InkCanves实现透明背景签名

1.使用InkCanves获取电子签名 2.生成的签名可用于文件的签名,用于打印 3.部分文件编辑软件需要插入图片图片才可看到效果,直接复制可能会出现底色。

WPF自定义绘制InkCanvas

利用WPF中的InkCanvas编写的鼠标拖动绘制图形的功能

C# WinForm手写识别实现完整教程

手写识别技术是将人类自然书写行为转化为数字信息的关键能力,广泛应用于电子签名、笔记输入、教育互动等多个领域。其核心流程包括笔迹采集特征提取与模式匹配三个阶段。笔迹采集通过触控屏或手写板获取用户输入轨迹;特征提取则从原始轨迹中提取关键几何与动态信息;模式匹配借助机器学习模型或模板库将特征转化为可识别的字符或图形。在C# WinForm平台中,虽然原生支持有限,但通过集成Windows Ink SDK,开发者可以实现高效的手写识别功能。

weixin_42234168的博客 1174

数据中心微网两阶段鲁棒规划:灵活性建模与Matlab实现

鲁棒优化作为一种处理不确定性的数学规划方法,在微网规划与运行领域得到广泛应用。其核心原理是通过不确定集刻画光伏出力与负荷的波动范围,在最恶劣场景下优化投资与运行决策,从而获得兼具经济性与韧性的方案。两阶段鲁棒规划进一步将决策分为前置投资与后续运行调整,配合列约束生成(C&CG)算法迭代求解,能够有效应对设备容量配置中的参数不确定性。数据中心作为高耗能且具备时间可平移、功率可调节特性的负荷,其灵活性可显著改善微网的经济性与可再生能源消纳能力。本文聚焦考虑灵活性的数据中心微网两阶段鲁棒规划问题,基于Matlab

weixin_34327223的博客 378

C#手写识别源码详解与实战

手写识别技术是一种通过电子设备将书写在屏幕上的手写信息转换为机器编码的技术。它常用于平板电脑、智能手机和其他触摸屏设备,允许用户使用笔或手指进行输入。这项技术极大提升了用户与设备交互的自然性和便捷性。.NET框架是一个由微软开发的软件框架,它是用于构建和运行Windows应用程序的平台。.NET框架提供了一个多语言编程环境,它支持多种编程语言,如C#、VB.NET等,并包含了一个全面的类库,用于处理文件、数据库、网络等常见任务。

weixin_35950531的博客 879

启动应用程序出现mprmsg.dll找不到问题解决

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个mprmsg.dll文件(挑选合适的版本文件)把它放入到程序或系统目录中,当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此将缺失的文件放回到原目录之后就能打开你的软件或游戏了.那么出现mprmsg.dll丢失要怎么解决?

wbcmbfy的博客 3180

WPF】提高InkAnalyer手写汉字识别的准确率

WPF】提高InkAnalyer手写汉字识别的准确率 http://www.cnblogs.com/RMay/p/improve_inkanalyer_recognization.html 转载于:https://www.cnblogs.com/xcj26/p/3176673.html

weixin_30725467的博客 187

微软Windows Ink 使用介绍

Windows Ink 是Win10 周年更新的一个新的功能,现在微软在研究如何用这个技术建立应用程序。 在微软用户调查中,72%的用户仍然使用传统的写作媒体,而我们的Ink为手写笔提供了更大的舞台。用户可以在不必使用传统键盘鼠标输入的前提下,使用手写的方式就可以在Windows10中与电脑互动,电脑可以毫无压力的识别用户给出的信息,并且转化为标准可识别字体。不仅如此,Ink还可以让从事图形...

编程工作室 5067
上一篇: 取消禁用WPF中默认的平滑抗锯齿
下一篇: 简单理解ShadowMap阴影的实现
SlimTracy
博客等级 码龄15年 26粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值