System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及计算机,特别是涉及一种wpf应用的触控方法、装置、设备和介质。
技术介绍
1、wpf(视窗呈现基础,windows presentation foundation)是一种由微软开发的用于创建windows(视窗)应用程序的框架。wpf应用可以包含丰富的图形和媒体元素,支持三维图形,以及易于实现响应式用户界面,其通常用于开发桌面应用程序,如业务应用程序、图形设计工具、媒体播放器等。
2、wine(wine不是模拟器,wine is not an emulator)是一种兼容层软件,其能够将第二操作系统的应用程序移植到第一操作系统上。由于wine能够将windows api(应用编程接口,application programinterface)的调用翻译成为动态的posix(可移植操作系统接口,portable operating system interface)调用,因此能够使wpf应用在windows之外的操作系统中运行。
3、目前,由于wine不支持触控,这就导致一些运行在wine上的wpf应用的触控功能不能使用。
技术实现思路
1、本申请实施例提供了一种wpf应用的触控方法,能够在兼容层环境下实现wpf应用的触控功能,且可以在一定程度上缓解wpf应用读取触屏数据不及时导致触屏数据丢失的问题。
2、相应的,本申请实施例还提供了一种wpf应用的触控装置、一种电子设备和一种机器可读介质,用以保证上述方法的实现及应用。
4、在兼容层环境中提供触屏设备相关接口和触屏数据处理接口;
5、根据wpf应用针对所述触屏设备相关接口的调用请求,创建触屏数据队列和共享内存,将根据所述触屏数据处理接口获取的触屏数据写入所述触屏数据队列,每次从所述触屏数据队列中读取一组触屏数据写入所述共享内存,并向wpf应用返回所述共享内存的内存句柄,以使wpf应用根据所述内存句柄读取一组触屏数据。
6、本申请实施例还公开了一种wpf应用的触控装置,所述装置应用于linux系统的兼容层环境,包括:
7、接口提供模块,用于在兼容层环境中提供触屏设备相关接口和触屏数据处理接口;
8、调用处理模块,用于根据wpf应用针对所述触屏设备相关接口的调用请求,创建触屏数据队列和共享内存,将根据所述触屏数据处理接口获取的触屏数据写入所述触屏数据队列,每次从所述触屏数据队列中读取一组触屏数据写入所述共享内存,并向wpf应用返回所述共享内存的内存句柄,以使wpf应用根据所述内存句柄读取一组触屏数据。
9、可选地,所述触屏数据处理接口包括:窗口触控注册接口和触屏数据获取接口;
10、则根据所述触屏数据处理接口获取触屏数据的过程,包括:
11、在所述触屏设备相关接口的处理过程中,根据所述窗口触控注册接口,将所述wpf应用的目标窗口注册为支持触控,获取触屏设备对应的触屏数据,并将所述触屏数据转换为触屏消息;
12、利用钩子函数,截获所述触屏消息,并根据所述触屏数据获取接口,获取所述触屏消息对应的触屏数据。
13、可选地,所述获取触屏设备对应的触屏数据,包括:
14、根据linux系统提供的窗口系统接口,获取触屏设备对应的第一数据结构触屏数据;或者
15、根据linux系统针对触屏设备提供的设备文件接口,获取触屏设备对应的第一数据结构触屏数据。
16、可选地,所述将所述触屏数据转换为触屏消息,包括:
17、将第一数据结构触屏数据转换为第二数据结构触屏数据;
18、其中,所述第一数据结构触屏数据对应linux系统提供的第一数据结构,所述第二数据结构触屏数据对应windows系统提供的第二数据结构。
19、可选地,所述装置还包括:
20、数据转换模块,用于利用钩子函数,将所述触屏消息对应的第二触屏数据转换为符合wpf格式要求的第三数据结构触屏数据。
21、可选地,所述装置还包括:
22、创建模块,用于根据wpf应用针对所述触屏设备相关接口的调用请求,创建用于表征wpf应用在共享内存中完成一组触屏数据的读取的第一事件,创建用于表征在共享内存中完成一组触屏数据的写入的第二事件;
23、则所述每次从所述触屏数据队列中读取一组触屏数据写入所述共享内存,包括:
24、根据第一事件,判断wpf应用是否在共享内存中完成一组触屏数据的读取,以得到对应的第一判断结果;
25、在第一判断结果为是的情况下,从触屏数据队列中读取一组触屏数据,并将读取的一组触屏数据写入共享内存中;
26、在完成一组触屏数据的写入后,将第二事件的状态设置为有信号状态,以使wpf应用在第二事件的状态为有信号状态的情况下,在共享内存中进行一组触屏数据的读取。
27、可选地,第一线程创建触屏数据队列和共享内存,并将根据所述触屏数据处理接口获取的触屏数据写入所述触屏数据队列;第二线程每次从所述触屏数据队列中读取一组触屏数据写入所述共享内存。
28、可选地,所述触屏设备相关接口包括:触屏设备管理接口和触屏设备接口;所述触屏设备相关接口的方法包括:检索触屏设备数量的方法和检索触屏设备对象的方法;所述触屏设备接口的方法包括:创建触屏设备的上下文对象的方法;
29、则所述wpf应用针对所述触屏设备相关接口发送的调用请求包括:
30、wpf应用针对触屏设备管理接口的方法的第一调用请求;所述第一调用请求用于获取触屏设备对象、以及触屏设备对象对应的触屏设备接口;
31、wpf应用针对触屏设备接口包含的创建触屏设备的上下文对象的方法的第二调用请求;
32、所述创建触屏设备的上下文对象的方法的处理过程包括:
33、创建触屏数据队列和共享内存,将根据所述触屏数据处理接口获取的触屏数据写入所述触屏数据队列,每次从所述触屏数据队列中读取一组触屏数据写入所述共享内存,并向wpf应用返回所述共享内存的内存句柄,以使wpf应用根据所述内存句柄读取一组触屏数据。
34、可选地,所述触屏设备相关接口还包括:触屏设备上下文接口;所述触屏设备上下文接口的方法包括:共享内存访问方法;所述第二调用请求用于获取所述触屏设备对象的触屏设备上下文接口;
35、则所述wpf应用针对所述触屏设备相关接口发送的调用请求还包括:
36、wpf应用针对共享内存访问方法的第三调用请求,所述第三调用请求用于获取所述共享内存的内存句柄。
37、本申请实施例还公开了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例所述的方法。
38、本本文档来自技高网...
【技术保护点】
1.一种WPF视窗呈现基础应用的触控方法,其特征在于,所述方法应用于Linux系统上运行的兼容层软件,包括:
2.根据权利要求1所述的方法,其特征在于,所述触屏数据处理接口包括:窗口触控注册接口和触屏数据获取接口;
3.根据权利要求2所述的方法,其特征在于,所述获取触屏设备对应的触屏数据,包括:
4.根据权利要求2所述的方法,其特征在于,所述将所述触屏数据转换为触屏消息,包括:
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,第一线程创建触屏数据队列和共享内存,并将根据所述触屏数据处理接口获取的触屏数据写入所述触屏数据队列;第二线程每次从所述触屏数据队列中读取一组触屏数据写入所述共享内存。
8.根据权利要求1所述的方法,其特征在于,所述触屏设备相关接口包括:触屏设备管理接口和触屏设备接口;所述触屏设备相关接口的方法包括:检索触屏设备数量的方法和检索触屏设备对象的方法;所述触屏设备接口的
9.根据权利要求8所述的方法,其特征在于,所述触屏设备相关接口还包括:触屏设备上下文接口;所述触屏设备上下文接口的方法包括:共享内存访问方法;所述第二调用请求用于获取所述触屏设备对象的触屏设备上下文接口;
10.一种WPF视窗呈现基础应用的触控装置,其特征在于,所述装置应用于Linux系统的兼容层环境,包括:
11.一种电子设备,其特征在于,包括:处理器;和
12.一种机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求1-9中任一项所述的方法。
...【技术特征摘要】
1.一种wpf视窗呈现基础应用的触控方法,其特征在于,所述方法应用于linux系统上运行的兼容层软件,包括:
2.根据权利要求1所述的方法,其特征在于,所述触屏数据处理接口包括:窗口触控注册接口和触屏数据获取接口;
3.根据权利要求2所述的方法,其特征在于,所述获取触屏设备对应的触屏数据,包括:
4.根据权利要求2所述的方法,其特征在于,所述将所述触屏数据转换为触屏消息,包括:
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,第一线程创建触屏数据队列和共享内存,并将根据所述触屏数据处理接口获取的触屏数据写入所述触屏数据队列;第二线程每次从所述触屏数据队列中读取一组触屏数据写入所述共享内存。
【专利技术属性】
技术研发人员:请求不公布姓名,请求不公布姓名,请求不公布姓名,
申请(专利权)人:中科方德软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。