一种同时缩放多个wpf窗体的方法和装置

发明名称


一种同时缩放多个wpf窗体的方法和装置


摘要


本发明提出一种同时缩放多个WPF窗体的方法,包括步骤:新建图像缩放控件;获取屏幕坐标系到WPF应用程序坐标的转换关系;获取鼠标点击位置在屏幕坐标系的坐标;进行坐标转换;根据转换结果确定图像缩放控件显示范围;将WPF窗体渲染成图像放入图像缩放控件;初始化控件动画的起始位置、结束位置和时间间隔;根据起始位置、结束位置、时间间隔和显示范围,进行图像缩放。本发明还提出一种同时缩放多个WPF窗体的装置,可以消进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。


权利要求(8)


1.一种同时缩放多个WPF窗体的方法,其特征是,包括步骤: 新建图像缩放控件,将所述图像缩放控件的父级设置为WPF应用程序; 获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系; 获取鼠标点击位置相对于屏幕的坐标; 将鼠标点击位置相对于屏幕平面坐标系的坐标和预定的各WPF窗体相对于屏幕平面坐标系的位置依据所述转换关系进行转换; 根据转换结果确定图像缩放控件需显示的范围,包括:从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最远的横坐标、最近的横坐标、最远的纵坐标以及最近的纵坐标,以最远的横坐标减去最近的横坐标的值作为所述图像缩放控件需显示的范围的宽度;以最远的纵坐标减去最近的纵坐标的值作为所述图像缩放控件需显示的范围的高度; 当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件;根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔;具体地,当打开WPF窗体时,将转换后的鼠标点击位置相对于屏幕平面坐标系的坐标初始化为图像缩放的起始位置,将转换后的预定的各WPF窗体相对于屏幕的位置初始化为图像缩放的结束位置;当关闭WPF窗体时,从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最近的横坐标以及最近的纵坐标,将该最近的横坐标以及最近的纵坐标初始化为图像缩放的起始位置,将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的结束位置; 根据所述图像缩放的起始位置、结束位置和动画时间间隔在所述图像缩放控件需显示的范围内进行图像缩放。


2.根据权利要求1所述的同时缩放多个WPF窗体的方法,其特征是, 所述获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系的步骤包括: 获取鼠标光标相对于屏幕平面坐标系的坐标以及该鼠标光标相对于WPF应用程序主窗体平面坐标系的坐标; 将所述鼠标光标相对于屏幕平面坐标系的坐标与所述鼠标光标相对于WPF应用程序主窗体平面坐标系的坐标的比值作为所述转换关系。


3.根据权利要求1所述的同时缩放多个WPF窗体的方法,其特征是, 在进行图像缩放初始化时,还包括初始化动画时的透明度。


4.根据权利要求1所述的同时缩放多个WPF窗体的方法,其特征是, 若关闭WPF窗体,则在进行图像缩放前,设置隐藏WPF窗体的时间间隔,所述隐藏WPF窗体的时间间隔小于所述动画时间间隔。


5.根据权利要求1所述的同时缩放多个WPF窗体的方法,其特征是, 在进行打开WPF窗体的图像缩放前,将需要渲染成图像的WPF窗体设置在屏幕显示区域外。


6.根据权利要求1至5任一项所述的同时缩放多个WPF窗体的方法,其特征是,在所述将图像放入图像缩放控件的步骤中,将图像按照渲染的先后顺序放入图像缩放控件。


7.一种同时缩放多个WPF窗体的装置,其特征是,包括: 控件创建单元,用于新建图像缩放控件,将所述图像缩放控件的父级设置为WPF应用程序; 第一获取单元,用于获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系; 第二获取单元,用于获取鼠标点击位置相对于屏幕平面坐标系的坐标; 坐标转换单元,用于将鼠标点击位置相对于屏幕平面坐标系的坐标和预定的各WPF窗体相对于屏幕平面坐标系的位置依据所述转换关系进行转换; 控件显示内容确定单元,用于根据转换结果确定图像缩放控件需显示的范围;所述控件显示内容确定单元确定显示范围时,从转化后预定的各WPF窗体相对于屏幕的位置中,获取尚WPF应用程序主窗体平面坐标系原点最远的横坐标、最近的横坐标、最远的纵坐标以及最近的纵坐标,以最远的横坐标减去最近的横坐标的值作为所述图像缩放控件需显示的范围的宽度;以最远的纵坐标减去最近的纵坐标的值作为所述图像缩放控件需显示的范围的闻度; WPF窗体渲染单元,用于获取WPF窗体状态,当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件; 初始化单元,用于根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔; 图像缩放单元,用于根据所述图像缩放的起始位置、结束位置和动画时间间隔在所述图像缩放控件需显示的范围内进行图像缩放。


8.根据权利要求7所述的同时缩放多个WPF窗体的装置,其特征是, 所述第一获取单元获取所述转换关系时,获取鼠标光标相对于屏幕的坐标以及该鼠标光标相对于WPF应用程序的坐标;将所述鼠标光标相对于屏幕的坐标与所述鼠标光标相对于WPF应用程序的坐标的比值作为所述转换关系; 所述初始化单元初始化图像缩放的起始位置和结束位置时,若打开WPF窗体,则将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的起始位置,将转换后的预定的各WPF窗体相对于屏幕的位置初始化为图像缩放的结束位置;若关闭WPF窗体,则从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最近的横坐标以及最近的纵坐标,将该最近的横坐标和最近的纵坐标初始化为图像缩放的起始位置,将转换后的鼠标点击位置相对于屏幕平面坐标系的坐标初始化为图像缩放的结束位置。


说明


—种同时缩放多个WPF窗体的方法和装置
技术领域


[0001] 本发明涉及交互显示领域,具体涉及一种同时缩放多个WPF窗体的方法和装置。


背景技术



[0002]大部分 WPF (Windows Presentat1n Foundat1n,windows 图形界面处理)程序在打开新窗体时都是瞬间把窗体显示在屏幕上、在关闭窗体,特别是多个窗体时也是窗体瞬间消失,没有任何动画效果,让用户感觉非常突兀,交互显示非常不友好。


[0003]目前,使得窗体在关闭或打开时产生动画效果的一般做法是直接对WPF窗体的大小位置进行动画变化,使其随着时间轴进行变化;但是同时打开或者关闭多个WPF窗口时,进行动画会出现窗体变化不一致的现象,降低用户体验;动画效率低,占用系统资源严重。


发明内容


[0004] 本发明提供一种同时缩放多窗体的方法,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。


[0005] 为达到上述目的,采用的方案:


[0006] 一种同时缩放多个WPF窗体的方法,包括步骤:


[0007] 新建图像缩放控件,将所述图像缩放控件的父级设置为WPF应用程序;


[0008] 获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系;


[0009] 获取鼠标点击位置相对于屏幕的坐标;


[0010] 将鼠标点击位置相对于屏幕的坐标、预定的各WPF窗体相对于屏幕的位置依据所述转换关系进行转换;


[0011] 根据转换结果确定图像缩放控件需显示的范围,包括:从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最远的横坐标、最近的横坐标、最远的纵坐标以及最近的纵坐标,以最远的横坐标减去最近的横坐标的值作为所述图像缩放控件需显示的范围的宽度;以最远的纵坐标减去最近的纵坐标的值作为所述图像缩放控件需显示的范围的高度;


[0012] 当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件;


[0013] 根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔,具体地,当打开WPF窗体时,将转换后的鼠标点击位置相对于屏幕平面坐标系的坐标初始化为图像缩放的起始位置,将转换后的预定的各WPF窗体相对于屏幕的位置初始化为图像缩放的结束位置;当关闭WPF窗体时,从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最近的横坐标以及最近的纵坐标,将该最近的横坐标以及最近的纵坐标初始化为图像缩放的起始位置,将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的结束位置;


[0014] 根据所述图像缩放的起始位置、结束位置动画时间间隔在所述图像缩放控件需显示的范围内进行图像缩放。


[0015] 本发明方法通过图像缩放控件使得打开或者关闭WPF窗体时产生动画效果。在动画开始前,新建图像缩放控件并将其父级设置为WPF应用程序;然后将WPF窗体对于屏幕的平面坐标系转换到WPF窗体对于WPF应用软件主窗体的平面坐标系,由此根据预设的WPF窗体对于屏幕的位置,可以确定图像缩放控件需显示的范围;将WPF窗体渲染成图像放入图像缩放控制;根据坐标转化后的鼠标点击位置和预定的WPF窗体对于屏幕的位置定义图像缩放的起始位置和结束位置;再定义动画时间间隔;然后进行打开或者关闭WPF窗体的动画效果,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。


[0016] 本发明提供一种同时缩放多窗体的装置,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。


[0017] 为达到上述目的,采用的方案:


[0018] 一种同时缩放多个WPF窗体的装置,包括:


[0019] 控件创建单元,用于新建图像缩放控件,将所述图像缩放控件的父级设置为WPF应用程序;


[0020] 第一获取单元,用于获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系;


[0021] 第二获取单元,用于获取鼠标点击位置相对于屏幕的坐标;


[0022] 坐标转换单元,用于将鼠标点击位置相对于屏幕的坐标、预定的各WPF窗体相对于屏幕的位置、高度和宽度依据所述转换关系进行转换;


[0023] 控件显示内容确定单元,用于根据转换结果确定图像缩放控件需显示的范围;所述控件显示内容确定单元确定显示范围时,从转化后预定的各WPF窗体相对于屏幕的位置中,获取尚WPF应用程序主窗体平面坐标系原点最远的横坐标、最近的横坐标、最远的纵坐标以及最近的纵坐标,以最远的横坐标减去最近的横坐标的值作为所述图像缩放控件需显示的范围的宽度;以最远的纵坐标减去最近的纵坐标的值作为所述图像缩放控件需显示的范围的高度;


[0024] WPF窗体渲染单元,用于获取WPF窗体状态,当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件;


[0025] 初始化单元,用于根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔;


[0026] 图像缩放单元,用于根据所述图像缩放的起始位置、结束位置和动画时间间隔在所述图像缩放控件需显示的范围内进行图像缩放。


[0027] 本发明装置通过图像缩放控件使得打开或者关闭WPF窗体时产生动画效果。在动画开始前,新建图像缩放控件并将其父级设置为WPF应用程序;然后将WPF窗体对于屏幕的平面坐标系转换到WPF窗体对于WPF应用软件主窗体的平面坐标系,由此根据预设的WPF窗体对于屏幕的位置,可以确定图像缩放控件需显示的范围;将WPF窗体渲染成图像放入图像缩放控制;根据坐标转化后的鼠标点击位置和预定的WPF窗体对于屏幕的位置定义图像缩放的起始位置和结束位置;再定义动画时间间隔;然后进行打开或者关闭WPF窗体的动画效果,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。


附图说明



[0028] 图1是本发明方法的一个实施例流程图;


[0029] 图2是本发明装置的一个结构示意图;


[0030] 图3是本发明中确定缩放控件显示范围的示意图。


具体实施方式



[0031] 为便于理解,下面结合附图进行阐述。


[0032] 本发明提出一种同时缩放多个WPF窗体的方法,请参考图1,包括步骤:


[0033] 101、新建图像缩放控件;


[0034] 新建图像缩放控件,将图像缩放控件的父级设置为WPF应用程序。


[0035] 102、获取屏幕坐标系到WPF应用程序坐标的转换关系;


[0036] 获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系。


[0037] 作为一种具体实时方式,可采用如下步骤:


[0038] 获取鼠标光标相对于屏幕平面坐标系的坐标以及该鼠标光标相对于WPF应用程序主窗体平面坐标系的坐标;


[0039] 将鼠标光标相对于屏幕的坐标与鼠标光标相对于WPF应用程序的坐标的比值作为转换关系。


[0040] 103、获取鼠标点击位置在屏幕坐标系的坐标;


[0041] 104、进行坐标转换;


[0042] 将鼠标点击位置相对于屏幕平面坐标系的坐标、预定的各WPF窗体相对于屏幕平面坐标系的位置依据步骤102中的转换关系进行转换。


[0043] 105、根据转换结果确定图像缩放控件显示范围;


[0044] 106、将WPF窗体渲染成图像放入图像缩放控件;


[0045] 当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件。


[0046] 107、初始化控件动画的起始位置、结束位置和时间间隔;


[0047] 根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔。


[0048] 作为一种具体实时方式,可采用如下步骤:当打开WPF窗体时,将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的起始位置,将转换后的预定的各WPF窗体相对于屏幕的位置初始化为图像缩放的结束位置;


[0049] 当关闭WPF窗体时,从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最近的横坐标以及最近的纵坐标,将该最近的横坐标以及最近的纵坐标初始化为图像缩放的起始位置,将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的结束位置。


[0050] 108、根据起始位置、结束位置、时间间隔和显示范围,进行图像缩放。


[0051] 根据图像缩放的起始位置、结束位置和动画时间间隔在图像缩放控件需显示的范围内进行图像缩放。


[0052] 本发明方法通过图像缩放控件使得打开或者关闭WPF窗体时产生动画效果。在动画开始前,新建图像缩放控件并将其父级设置为WPF应用程序;然后将WPF窗体对于屏幕的平面坐标系转换到WPF窗体对于WPF应用软件主窗体的平面坐标系,由此根据预设的WPF窗体对于屏幕的位置,可以确定图像缩放控件需显示的范围;将WPF窗体渲染成图像放入图像缩放控制;根据坐标转化后的鼠标点击位置和预定的WPF窗体对于屏幕的位置定义图像缩放的起始位置和结束位置;再定义动画时间间隔;然后进行打开或者关闭WPF窗体的动画效果,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。


[0053] 其中,步骤105包括:


[0054] 从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最远的横坐标、最近的横坐标、最远的纵坐标以及最近的纵坐标,以最远横坐标减去最近横坐标的值作为所述图像缩放控件需显示的范围的宽度;以最远纵坐标减去最近纵坐标的值作为所述图像缩放控件需显示的范围的高度。具体的,建立如图3所示的屏幕平面坐标系,包括三个WPF窗体(1、2和3)离坐标系原点最近的横坐标是A,最远的横坐标是B,最远的纵坐标是H,最近的纵坐标是G,由此可知,在屏幕上,各WPF窗体代表的区域为CDEF所示,再将CDEF代表的范围转换至WPF应用程序主窗体的平面坐标系,即为缩放控件需显示范围。


[0055] 为了使得图像缩放有更好的视觉效果,在步骤107中进行图像缩放初始化时,还包括初始化动画时的透明度。打开WPF窗体时,设置透明度从O至I渐变;关闭WPF窗体时,设置透明度从I至O渐变,其中,O表示完全透明,I表示不透明。


[0056] 为了消除关闭窗体时,出现的屏幕闪烁状况,可在进行图像缩放前,设置隐藏WPF窗体的时间间隔,隐藏WPF窗体的时间间隔小于动画时间间隔。


[0057] 为了消除在动画开始时,屏幕出现闪烁的状况,可在进行打开窗体的图像缩放前,将需要渲染成图像的WPF窗体设置在屏幕显示区域外。


[0058] 在106步骤中,可将图像按照渲染的先后顺序放入图像缩放控件,方便图像缩放控件的显示。


[0059] 请参考图2,一种同时缩放多个WPF窗体的装置,包括:


[0060] 控件创建单元Tl,用于新建图像缩放控件,将图像缩放控件的父级设置为WPF应用程序;


[0061] 第一获取单元T2,用于获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系;


[0062] 第二获取单元T3,用于获取鼠标点击位置相对于屏幕的坐标;


[0063] 坐标转换单元T4,用于将鼠标点击位置相对于屏幕的坐标、预定的各WPF窗体相对于屏幕的位置依据上述转换关系进行转换;


[0064] 控件显示内容确定单元T5,用于根据转换后的高度和宽度确定图像缩放控件需显示的范围;


[0065] WPF窗体渲染单元T6,用于获取WPF窗体状态,当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件;


[0066] 初始化单元T7,用于根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔;


[0067] 图像缩放单元T8,用于根据图像缩放的起始位置、结束位置和动画时间间隔在图像缩放控件需显示的范围内进行图像缩放。


[0068] 本发明装置通过图像缩放控件使得打开或者关闭WPF窗体时产生动画效果。在动画开始前,新建图像缩放控件并将其父级设置为WPF应用程序;然后将WPF窗体对于屏幕的平面坐标系转换到WPF窗体对于WPF应用软件主窗体的平面坐标系,由此根据预设的WPF窗体对于屏幕的位置,可以确定图像缩放控件需显示的范围;将WPF窗体渲染成图像放入图像缩放控制;根据坐标转化后的鼠标点击位置和预定的WPF窗体对于屏幕的位置定义图像缩放的起始位置和结束位置;再定义动画时间间隔;然后进行打开或者关闭WPF窗体的动画效果,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。


[0069] 其中,第一获取单元T2获取转换关系时,获取鼠标光标相对于屏幕的坐标以及该鼠标光标相对于WPF应用程序的坐标;将鼠标光标相对于屏幕的坐标与鼠标光标相对于WPF应用程序的坐标的比值作为转换关系;


[0070] 控件显示内容确定单元T5确定显示范围时,从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最远的横坐标、最近的横坐标、最远的纵坐标以及最近的纵坐标,以最远横坐标减去最近横坐标的值作为所述图像缩放控件需显示的范围的宽度;以最远纵坐标减去最近纵坐标的值作为所述图像缩放控件需显示的范围的高度;


[0071] 初始化单元T7初始化图像缩放的起始位置和结束位置时,若打开WPF窗体,则将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的起始位置,将转换后的预定的各WPF窗体相对于屏幕的位置初始化为图像缩放的结束位置;若关闭WPF窗体,则从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最近的横坐标以及最近的纵坐标,将该最近的横坐标和最近的纵坐标初始化为图像缩放的起始位置,将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的结束位置。


[0072] 为了使得图像缩放有更好的视觉效果,初始化单元T7进行图像缩放初始化时,还包括初始化动画时的透明度。打开WPF窗体时,设置透明度从O至I渐变;关闭WPF窗体时,设置透明度从I至O渐变,其中,O表示完全透明,I表示不透明。


[0073] 为了消除关闭窗体时,出现的屏幕闪烁状况,初始化单元T7设置隐藏WPF窗体的时间间隔,隐藏WPF窗体的时间间隔小于动画时间间隔。


[0074] 为了消除在动画开始时,屏幕出现闪烁的状况,可在进行打开窗体的图像缩放前,将需要渲染成图像的WPF窗体设置在屏幕显示区域外。


[0075] WPF窗体渲染单元T6可将图像按照渲染的先后顺序放入图像缩放控件,方便图像缩放控件的显示。


[0076] 作为一种具体实时方式,从WPF应用程序打开多个WPF窗体(这几个窗体高可以不一样,宽度可以不一样),点击关闭全部窗体按钮,图像缩放控件(例如ViewBox)出现于这几个窗体上面,然后这几个WPF窗体消失,ViewBox开始动画,从开始位置高宽逐渐缩小,透明度从I到O渐变,最后缩进鼠标点击的地方(结束位置),整个过程动画流畅,不出现屏幕闪烁。


[0077] 以上本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。


附图

图1


图2

图3


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值