本发明涉及领域,尤其涉及一种基于avalonia框架的自适应软件界面曲线图绘制方法及系统。
背景技术:
1、在当前软件开发领域中,图表是一种常见的数据可视化工具,特别是曲线图在展示趋势和变化方面具有广泛的应用。然而,传统的曲线图在所在界面大小发生变化时,无法自动适应调整大小,这导致用户在调整界面大小时无法直观地观察到图表的变化。这种不灵活的显示方式不仅降低了用户体验的舒适度,也减弱了图表在数据分析和决策制定中的实用性。
2、此外,在软件应用中实现图表自适应显示通常需要复杂的布局管理和重绘策略。传统的实现方式往往依赖于手动计算和调整图表元素的位置和大小,这不仅增加了开发人员的工作量,还容易出现布局混乱或重绘延迟的问题。复杂的布局管理和重绘策略不仅增加了开发的复杂度,还可能影响应用的性能,降低了用户体验。
3、因此,当前存在的曲线图无法随着界面大小的变化自动调整大小,不够直观,并且在软件应用中实现图表自适应显示通常需要复杂的布局管理和重绘策略,这不仅增加了开发的复杂度,还可能影响应用的性能。
技术实现思路
1、为解决上述问题,本发明提供了一种基于avalonia框架的自适应软件界面曲线图绘制方法,通过在avalonia框架的基础上对曲线图所在控件尺寸进行监控,并根据控件尺寸变化对曲线图进行重绘,解决了现有软件中曲线图自适应调整复杂,影响软件性能的问题。
2、为实现上述目的,本发明提供以下技术方案:
3、一种基于avalonia框架的自适应软件界面曲线图绘制方法,基于avalonia框架,所述方法包括:
4、s1.获取曲线图,基于承载所述曲线图的控件尺寸大小对所述曲线图进行处理;
5、s2.响应于所述控件的尺寸变化,记录变化前控件尺寸大小,建立曲线图重绘任务;
6、s3.执行所述曲线图重绘任务,根据执行所述曲线图重绘任务时与变化前控件尺寸大小的变化,重绘所述曲线图;
7、s4.监控所述控件尺寸是否变化,当尺寸发生变化时,重复s2-s3,直至控件尺寸不再发生变化,完成曲线图绘制。
8、进一步地,在步骤s1中,所述基于承载所述曲线图的控件为canvas控件,所述canvas控件位于viewbox控件中,所述viewbox的stretch属性为none。
9、进一步地,在步骤s2中,所述建立曲线图重绘任务中,其具体实现方式包括:所述建立曲线图重绘任务还包括执行延时指令,所述延时指令用于进行倒计时,当延时指令的倒计时结束时,执行曲线图重绘任务。
10、进一步地,在步骤s3中,所述重绘曲线图,其具体实现方式包括:保存重绘前曲线图的数据,根据控件的尺寸计算x轴上的刻度间隔和y轴上的刻度间隔,初始化控件,根据x轴上的刻度间隔和y轴上的刻度间隔在控件中绘制x轴和y轴,得到控件中的坐标系,根据重绘前曲线图的数据,将曲线图生成于控件中的坐标系中。
11、进一步地,所述初始化控件,具体实现方式包括:清空控件中的所有子控件。
12、进一步地,所述根据控件的尺寸计算x轴上的刻度间隔和y轴上的刻度间隔,其具体实现方式包括:对于x轴上除零点外的第i个刻度,其水平位置x(i)的计算公式为:
13、
14、其中,x(i)表示x轴上第i个刻度的数值,width表示控件的宽度,i表示x轴上刻度的总数;
15、对于y轴上除零点外的第j个刻度,其竖直位置y(j)的计算公式为:
16、
17、其中,y(j)表示y轴上第j个刻度的数值,height表示控件的宽度,j表示表示y轴上刻度的总数。
18、进一步地,所述根据x轴上的刻度间隔和y轴上的刻度间隔在控件中绘制x轴和y轴,还包括:对于每一个x轴上的刻度,在刻度上生成一条垂直于x轴的直线,所述直线的起点为控件的顶部,终点为控件的底部;对于每一个y轴上的刻度,在刻度上生成一条垂直于y轴的直线,所述直线的起点为控件的左边缘,终点为控件的右边缘。
19、进一步地,所述viewbox控件位于窗口控件中,响应于窗口控件的尺寸变化,计算变化前viewbox控件的尺寸相较于窗口控件尺寸的尺寸比例,根据变化后的窗口控件尺寸,按尺寸比例改变viewbox控件的尺寸,直至窗口控件的尺寸停止变化。
20、进一步地,当viewbox控件的尺寸变化时,将viewbox控件的尺寸赋值给canvas控件的尺寸,使canvas控件与viewbox控件的尺寸相同。
21、通过上述技术方案,本发明具有以下有益效果:利用avalonia框架的控件承载曲线图,并监控所述控件的尺寸变化,从而根据控件的尺寸变化对曲线图进行重绘,使得当外界因素导致控件尺寸变化时,及时对曲线图进行调整,简化了曲线图的自适应绘制,提高了软件效率。
1.一种基于avalonia框架的自适应软件界面曲线图绘制方法,其特征在于,基于avalonia框架,所述方法包括:
2.根据权利要求1所述的一种基于avalonia框架的自适应软件界面曲线图绘制方法,其特征在于,在步骤s1中,所述基于承载所述曲线图的控件为canvas控件,所述canvas控件位于viewbox控件中,所述viewbox的stretch属性为none。
3.根据权利要求1所述的一种基于avalonia框架的自适应软件界面曲线图绘制方法,其特征在于,在步骤s2中,所述建立曲线图重绘任务中,其具体实现方式包括:所述建立曲线图重绘任务还包括执行延时指令,所述延时指令用于进行倒计时,当延时指令的倒计时结束时,执行曲线图重绘任务。
4.根据权利要求1所述的一种基于avalonia框架的自适应软件界面曲线图绘制方法,其特征在于,在步骤s3中,所述重绘曲线图,其具体实现方式包括:保存重绘前曲线图的数据,根据控件的尺寸计算x轴上的刻度间隔和y轴上的刻度间隔,初始化控件,根据x轴上的刻度间隔和y轴上的刻度间隔在控件中绘制x轴和y轴,得到控件中的坐标系,根据重绘前曲线图的数据,将曲线图生成于控件中的坐标系中。
5.根据权利要求4所述的一种基于avalonia框架的自适应软件界面曲线图绘制方法,其特征在于,所述初始化控件,具体实现方式包括:清空控件中的所有子控件。
6.根据权利要求4所述的一种基于avalonia框架的自适应软件界面曲线图绘制方法,其特征在于,所述根据控件的尺寸计算x轴上的刻度间隔和y轴上的刻度间隔,其具体实现方式包括:对于x轴上除零点外的第i个刻度,其水平位置x(i)的计算公式为:
7.根据权利要求6所述的一种基于avalonia框架的自适应软件界面曲线图绘制方法,其特征在于,所述根据x轴上的刻度间隔和y轴上的刻度间隔在控件中绘制x轴和y轴,还包括:对于每一个x轴上的刻度,在刻度上生成一条垂直于x轴的直线,所述直线的起点为控件的顶部,终点为控件的底部;对于每一个y轴上的刻度,在刻度上生成一条垂直于y轴的直线,所述直线的起点为控件的左边缘,终点为控件的右边缘。
8.根据权利要求2所述的一种基于avalonia框架的自适应软件界面曲线图绘制方法,其特征在于,所述viewbox控件位于窗口控件中,响应于窗口控件的尺寸变化,计算变化前viewbox控件的尺寸相较于窗口控件尺寸的尺寸比例,根据变化后的窗口控件尺寸,按尺寸比例改变viewbox控件的尺寸,直至窗口控件的尺寸停止变化。
9.根据权利要求8所述的一种基于avalonia框架的自适应软件界面曲线图绘制方法,其特征在于,当viewbox控件的尺寸变化时,将viewbox控件的尺寸赋值给canvas控件的尺寸,使canvas控件与viewbox控件的尺寸相同。
10.一种基于avalonia框架的自适应软件界面曲线图绘制系统,其特征在于,包括:
