在 WPF 中可以通过 StylusPlugIn 的方式快速从触摸线程拿到触摸数据,而 WinForms 没有这个机制,但是可以通过 Microsoft.Ink 组件和 WPF 相同在 RealTimeStylus 服务拿到触摸点

本文的例子放在微软的官方例子里面,请看 GitHub 代码

本文不会告诉大家代码如何写,因为看微软的代码就知道了,本文主要告诉大家为什么这样做的触摸收集足够快

在 Windows 里面,会通过 WM_TOUCH 的消息发送触摸的信息,但是通过消息的方式不够快。当然这句话不是说消息不快,而是和 Wisptis 服务对比还是不够快

从微软的笔和触摸服务里面获取的方法是需要使用复杂的方法才能获取到内容,大概的获取方法就是从共享内存里面读取值,此时的读取速度将比消息快

在 csproj 里面引用 Microsoft.Ink 组件,将可以获取 RealTimeStylus 的封装方法,不需要写一个 PenImc 的组件。但是通过这个方法将拿到十分底层的内容,需要小伙伴自己处理

    <Reference Include="Microsoft.ink, Version=6.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<SpecificVersion>True</SpecificVersion>
</Reference>

我推荐下载微软的代码,然后构建,尝试运行,然后对比一下性能。这个方法能拿到最快的触摸信息,但是这个方法优化的仅是触摸收集,而对渲染没有做多少优化

更多请看微软文档 Windows Touch Scratchpad using the Real-Time Stylus Sample (C#) - Win32 apps

在 WPF 中默认的 StylusPlugIn 就使用了这部分优化,不需要额外的引用组件,如何在 WPF 中做高性能笔请看 WPF 高性能笔

本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WinForms-%E4%B8%8B%E7%9A%84%E9%AB%98%E6%80%A7%E8%83%BD%E7%AC%94%E8%BF%B9%E6%96%B9%E6%B3%95.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验

WinForm 下的高性能笔迹方法的更多相关文章

  1. Winform下实现图片切换特效的方法

    本文实例讲述了Winform下实现图片切换特效的方法,是应用程序开发中非常实用的一个功能.分享给大家供大家参考之用.具体方法如下: 本实例源自网络,功能较为齐全.丰富!主要功能代码如下: using ...

  2. 在winform下实现左右布局多窗口界面的方法(二)

    这篇文章主要介绍了在winform下实现左右布局多窗口界面的方法之续篇 的相关资料,需要的朋友可以参考下 在上篇文章在winform下实现左右布局多窗口界面的方法(一)已经实现了左右布局多窗口界面,今 ...

  3. 在winform下实现左右布局多窗口界面的方法(一)

    在web页面上我们可以通过frameset,iframe嵌套框架很容易实现各种导航+内容的布局界面,而在winform.WPF中实现其实也很容易,通过本文给大家介绍在winform下实现左右布局多窗口 ...

  4. Winform下CefSharp的引用、配置、实例与报错排除(源码)

    Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfrom项目.引用CefSharp的方法,演示了winfro ...

  5. 分享在winform下实现模块化插件编程-优化版

    上一篇<分享在winform下实现模块化插件编程>已经实现了模块化编程,但我认为不够完美,存在以下几个问题: 1.IAppContext中的CreatePlugInForm方法只能依据完整 ...

  6. 分享在winform下实现模块化插件编程

    其实很早之前我就已经了解了在winform下实现插件编程,原理很简单,主要实现思路就是:先定一个插件接口作为插件样式及功能的约定,然后具体的插件就去实现这个插件接口,最后宿主(应用程序本身)就利用反射 ...

  7. 分享在winform下实现左右布局多窗口界面-续篇

    之前的这篇文章<分享在winform下实现左右布局多窗口界面>已经实现了左右布局多窗口界面,今天本来是研究基于winform的插件编程,没想到顺便又找到了另一种实现方案,这种实现方案更简单 ...

  8. 分享在winform下实现左右布局多窗口界面

    在web页面上我们可以通过frameset,iframe嵌套框架很容易实现各种导航+内容的布局界面,而在winform.WPF中实现其实也很容易,我这里就分享一个:在winform下实现左右布局多窗口 ...

  9. PHP环境下Memcache的使用方法

    原文:PHP环境下Memcache的使用方法 原文地址:http://www.2cto.com/kf/201503/384967.html 如今互联网崛起的时代,各大网站都面临着一个大数据流问题,怎么 ...

  10. winform下的智能提示框

    winform下的智能提示框 最近在搞winform的程序,接触到有些可能以后还会用到的功能,所以写到博客园里去,第一可以加深自己的印象,第二可以在以后再遇到同样问题的时候忘记了可以马上回来看看,第三 ...

随机推荐

  1. Vue3.0里为什么要用 Proxy API 替代 defineProperty API ?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.Object.defineProperty 定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性 ...

  2. gRPC入门学习之旅(三)

    gRPC入门学习之旅(一) gRPC入门学习之旅(二) 2.3.创建自定义服务 除上面的模板中自带的一个gRPC服务之后,我们再创建一个自己的服务,我将创建一个用户信息gRPC服务,主要功能有三个,登 ...

  3. 化腐朽为神奇的QueryMapping

    化腐朽为神奇的QueryMapping 老车除了报废没别的方法? 应用系统就像老车,经过十几二十年的使用,积累了大量里程数据,但是英雄迟暮,反应迟钝,时不时还要病休.但就这样报废,推到重来,如果没有充 ...

  4. 自己写个网盘系列:③ 开源这个网盘编码,手把手教你windows linux 直接部署,docker本地打包部署网盘应用

    系列①②已经完成了这个项目的页面和项目的全部编码,前后端分离,这个文章将向你展示运维小伙伴如何部署到windows服务器,linux服务器,docker部署,一学就会,快来看看吧! 说明:这个系列准备 ...

  5. Android按钮_单选框_多选框_文字框

    1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android= ...

  6. #对勾函数#洛谷 5695 [NOI2001]反正切函数的应用

    题目 问给定的每一个\(a\),是否存在正整数\(b,c\), 使得在满足$$\arctan(\frac{1}{a})=\arctan(\frac{1}{b})+\arctan(\frac{1}{c} ...

  7. java excel关联导入数据格式为一对多

    java excel关联导入数据格式为一对多 java 表格读取时一行一行的读取 将每行数据放入list  根据 list.stream().filter(m->m.getCode().equa ...

  8. 如何通过 kubectl 进入 node shell

    概述 假设这样一个场景: 生产环境中,Node 都需要通过堡垒机登录,但是 kubectl 是可以直接在个人电脑上登录的. 这种场景下,我想要通过 kubectl 登录到 K8S 集群里的 Node, ...

  9. HarmonyOS Connect FAQ第三期

    原文:https://mp.weixin.qq.com/s/YpI9-k4yQvNhaMfg7Li82g,点击链接查看更多技术内容.   在开发HarmonyOS Connect生态产品时,你是否对设 ...

  10. win7自带屏幕录像工具

    win7自带屏幕录像工具 2012-03-28 09:23:05      我来说两句      收藏     我要投稿 相信win7自带的屏幕录像工具很多朋友都没用过甚至没有听说过,   但是这款实 ...