一种多WPF窗体拼接为一个可操作画布的实现方法技术

技术编号:38858195 阅读:26 留言:0更新日期:2023-09-17 10:02
本发明专利技术公开一种多WPF窗体拼接为一个可操作画布的实现方法,包括如下步骤:步骤1:创建一个WPF主窗体,在WPF主窗体上创建一个容器,并将至少包括两个用于形成所述画布的WPF子窗体添加到容器,将各个WPF子窗体进行拼接成一个画布;步骤2:为每一个WPF子窗体注册触控响应事件,触控响应事件用于响应用户对所述画布操作;步骤3:基于触控响应事件,获得所述操作对画布产生的变换量,变换量包括横向位移量、纵向位移量和缩放比例。步骤4:基于所述变换量响应于容器的缩放、移动操作,从而实现对由多个WPF子窗体拼接的画布进行缩放、移动操作。本发明专利技术操作简单,操作更具便利性,学习成本低,用户体验度高。户体验度高。户体验度高。

【技术实现步骤摘要】
一种多WPF窗体拼接为一个可操作画布的实现方法


[0001]本专利技术涉及计算机
,具体是一种多WPF窗体拼接为一个可操作画布的实现方法。

技术介绍

[0002]WPF(Windows Presentation Foundation)是微软推出的一种新的用户界面框架,其提供了较为先进的图形渲染、布局和动画效果等功能。在WPF窗体中,窗体相当于是一个基础控件,其能够容纳其他控件,例如可以容纳按钮、文本框等控件。因此,对于像数据可视化等领域而需要展示图表和数据时,便可通过WPF窗体来实现图表和数据的展示。但对于需要同时展示多个图表和数据,这些图表和数据不能或者不方便在一个窗体展示,直接采用现有的一个WPF窗体无法胜任需要同时展示多个图表和数据的任务。另外,现有的画布展示中往往无法指出整个画布作为一个整体进行触摸、缩放和滚动等操作。因此,希望有一种基于WPF窗体能够实现包括触摸、缩放和滚动等操作并且在一个画布上展示更多图表和数据的实现方法。

技术实现思路

[0003]针对现有技术的不足,本专利技术的目的是提供一种多WPF窗体拼接为一个可操作画布的实现方法,其能够解决
技术介绍
所描述的问题。
[0004]实现本专利技术的目的的技术方案为:一种多WPF窗体拼接为一个可操作画布的实现方法,包括如下步骤:
[0005]步骤1:创建一个WPF主窗体,在WPF主窗体上创建一个容器,并将至少包括两个用于形成所述画布的WPF子窗体添加到容器,将各个WPF子窗体进行拼接成一个画布;
[0006]步骤2:为每一个WPF子窗体注册触控响应事件,触控响应事件用于响应用户对所述画布操作;
[0007]步骤3:基于触控响应事件,获得所述操作对画布产生的变换量,变换量包括横向位移量、纵向位移量和缩放比例;
[0008]步骤4:基于所述变换量响应于容器的缩放、移动操作,从而实现对由多个WPF子窗体拼接的画布进行缩放、移动操作。
[0009]进一步地,所述容器为Canvas容器。
[0010]进一步地,所述触控响应事件为ManipulationDelta事件。
[0011]进一步地,在步骤3中,还包括将获得的变换量赋值到中间变量中,将横向位移量赋值给中间变量offsetX,纵向位移量赋值给中间变量offsetY,缩放比例赋值给中间变量scale。
[0012]进一步地,缩放比例scale取横向缩放或纵向缩放比例较大的缩放比例值。
[0013]进一步地,步骤4之后,还包括,
[0014]步骤5:在主窗体中添加ScrollViewer控件,并且将Canvas容器放入ScrollViewer
控件中,以实现鼠标拖动或触摸屏幕实现画布的滚动效果。
[0015]本专利技术的有益效果为:本专利技术操作简单,操作更具便利性,学习成本低,能够实现将多个WPF子窗体构成一个整体画布来显示,并且可以在该画布中进行缩放、移动等操作,从而能够应用在需要展示多个图表和数据等场景中,应用范围更广,提高了用户体验度。
附图说明
[0016]图1为本专利技术的流程示意图;
[0017]图2是由3个WPF子窗体拼接成一个画布的效果示意图。
具体实施方式
[0018]下面,结合附图以及具体实施方案,对本专利技术做进一步描述:
[0019]如图1和图2所示,一种多WPF窗体拼接为一个可操作画布的实现方法,包括如下步骤:
[0020]步骤1:创建一个WPF主窗体,在WPF主窗体上创建一个Canvas容器,并将至少包括两个用于形成所述画布的WPF子窗体添加到Canvas容器,将各个WPF子窗体进行拼接成一个画布。
[0021]在本步骤中,实用Canvas容器可以确保该容器内的各个WPF子窗体可以在WPF主窗体内自由定位和调整大小,从而实现灵活的布局。WPF子窗体是指相对于WPF主窗体而言的窗体,WPF子窗体和WPF主窗体均属于WPF窗体。
[0022]步骤2:为每一个WPF子窗体注册触控响应事件,触控响应事件用于响应用户对所述画布操作,包括触摸、缩放、移动等操作,例如触摸屏幕,鼠标拖动等,触控响应事件均会被触发并执行。
[0023]在本步骤中,所述触控响应事件为ManipulationDelta事件,也即只需要注册ManipulationDelta事件,即可形成触控响应事件。
[0024]步骤3:基于触控响应事件,获得所述操作对画布产生的变换量,变换量包括横向位移量、纵向位移量和缩放比例。
[0025]获得变换量可以通过以下程序代码获得:
[0026]var deltaManipulation=e.DeltaManipulation
[0027]该程序代码表示从事件中获取的表述当前操作(例如用手势操作)产生的变换量。
[0028]将获得的变换量赋值到中间变量中。例如,将横向位移量赋值给中间变量offsetX,纵向位移量赋值给中间变量offsetY,缩放比例赋值给中间变量scale。其中,缩放比例scale取横向缩放或纵向缩放比例较大的缩放比例值。
[0029]步骤4:基于所述变换量响应于Canvas容器的缩放、移动操作,也即根据中间变量赋予过来的值来缩放相应的缩放比例和移动相应的位移量,从而实现对由多个WPF子窗体拼接的画布进行缩放、移动操作,其中以画布中心点进行缩放操作。
[0030]在一个可选的实施方式中,步骤4之后,还包括,
[0031]步骤5:在主窗体中添加ScrollViewer控件,并且将Canvas容器放入ScrollViewer控件中,以实现鼠标拖动或触摸屏幕实现画布的滚动效果。
[0032]参考图2,图2是由3个WPF子窗体拼接成一个画布的效果示意图。通过该画布,能够
实现多个WPF子窗体构成一个画布后的整体缩放而非是画布中的单个窗体进行同比例的缩放。
[0033]本专利技术操作简单,操作更具便利性,学习成本低,能够实现将多个WPF子窗体构成一个整体画布来显示,并且可以在该画布中进行缩放、移动等操作,从而能够应用在需要展示多个图表和数据等场景中,应用范围更广,提高了用户体验度。
[0034]本说明书所公开的实施例只是对本专利技术单方面特征的一个例证,本专利技术的保护范围不限于此实施例,其他任何功能等效的实施例均落入本专利技术的保护范围内。对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本专利技术权利要求的保护范围之内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多WPF窗体拼接为一个可操作画布的实现方法,其特征在于,包括如下步骤:步骤1:创建一个WPF主窗体,在WPF主窗体上创建一个容器,并将至少包括两个用于形成所述画布的WPF子窗体添加到容器,将各个WPF子窗体进行拼接成一个画布;步骤2:为每一个WPF子窗体注册触控响应事件,触控响应事件用于响应用户对所述画布操作;步骤3:基于触控响应事件,获得所述操作对画布产生的变换量,变换量包括横向位移量、纵向位移量和缩放比例;步骤4:基于所述变换量响应于容器的缩放、移动操作,从而实现对由多个WPF子窗体拼接的画布进行缩放、移动操作。2.根据权利要求1所述的多WPF窗体拼接为一个可操作画布的实现方法,其特征在于,所述容器为Canvas容器。3.根据权利要求2所述的多WPF窗体拼接为一个可操作画布的实现方法,其特征在...

【专利技术属性】
技术研发人员:林志谋朱正辉赵定金明德
申请(专利权)人:广东保伦电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1