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

文档序号:6443263阅读:272来源:国知局
专利名称:一种同时缩放多个wpf窗体的方法和装置的制作方法
技术领域
本发明涉及交互显示领域,具体涉及一种同时缩放多个WPF窗体的方法和装置。
背景技术
大部分WPF (Windows Presentation Foundation,windows 图形界面处理)程序在打开新窗体时都是瞬间把窗体显示在屏幕上、在关闭窗体,特别是多个窗体时也是窗体瞬间消失,没有任何动画效果,让用户感觉非常突兀,交互显示非常不友好。目前,使得窗体在关闭或打开时产生动画效果的一般做法是直接对WPF窗体的大小位置进行动画变化,使其随着时间轴进行变化;但是同时打开或者关闭多个WPF窗口时, 进行动画会出现窗体变化不一致的现象,降低用户体验;动画效率低,占用系统资源严重。

发明内容
本发明提供一种同时缩放多窗体的方法,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。为达到上述目的,采用的方案一种同时缩放多个WPF窗体的方法,包括步骤新建图像缩放控件,将所述图像缩放控件的父级设置为WPF应用程序;获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系;获取鼠标点击位置相对于屏幕的坐标;将鼠标点击位置相对于屏幕的坐标、预定的各WPF窗体相对于屏幕的位置依据所述转换关系进行转换;根据转换结果确定图像缩放控件需显示的范围;当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件;根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔;根据所述图像缩放的起始位置、结束位置动画时间间隔在所述图像缩放控件需显示的范围内进行图像缩放。本发明方法通过图像缩放控件使得打开或者关闭WPF窗体时产生动画效果。在动画开始前,新建图像缩放控件并将其父级设置为WPF应用程序;然后将WPF窗体对于屏幕的平面坐标系转换到WPF窗体对于WPF应用软件主窗体的平面坐标系,由此根据预设的WPF 窗体对于屏幕的位置,可以确定图像缩放控件需显示的范围;将WPF窗体渲染成图像放入图像缩放控制;根据坐标转化后的鼠标点击位置和预定的WPF窗体对于屏幕的位置定义图像缩放的起始位置和结束位置;再定义动画时间间隔;然后进行打开或者关闭WPF窗体的动画效果,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。本发明提供一种同时缩放多窗体的装置,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。为达到上述目的,采用的方案一种同时缩放多个WPF窗体的装置,包括控件创建单元,用于新建图像缩放控件,将所述图像缩放控件的父级设置为WPF 应用程序;第一获取单元,用于获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系;第二获取单元,用于获取鼠标点击位置相对于屏幕的坐标;坐标转换单元,用于将鼠标点击位置相对于屏幕的坐标、预定的各WPF窗体相对于屏幕的位置、高度和宽度依据所述转换关系进行转换;控件显示内容确定单元,用于根据转换结果确定图像缩放控件需显示的范围;WPF窗体渲染单元,用于获取WPF窗体状态,当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件;初始化单元,用于根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔;图像缩放单元,用于根据所述图像缩放的起始位置、结束位置动画时间间隔在所述图像缩放控件需显示的范围内进行图像缩放。本发明装置通过图像缩放控件使得打开或者关闭WPF窗体时产生动画效果。在动画开始前,新建图像缩放控件并将其父级设置为WPF应用程序;然后将WPF窗体对于屏幕的平面坐标系转换到WPF窗体对于WPF应用软件主窗体的平面坐标系,由此根据预设的WPF 窗体对于屏幕的位置,可以确定图像缩放控件需显示的范围;将WPF窗体渲染成图像放入图像缩放控制;根据坐标转化后的鼠标点击位置和预定的WPF窗体对于屏幕的位置定义图像缩放的起始位置和结束位置;再定义动画时间间隔;然后进行打开或者关闭WPF窗体的动画效果,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。


图I是本发明方法的一个实施例流程图;图2是本发明装置的一个结构示意图;图3是本发明中确定缩放控件显示范围的示意图。
具体实施例方式为便于理解,下面结合附图进行阐述。本发明提出一种同时缩放多个WPF窗体的方法,请参考图1,包括步骤101、新建图像缩放控件;新建图像缩放控件,将图像缩放控件的父级设置为WPF应用程序。102、获取屏幕坐标系到WPF应用程序坐标的转换关系;
获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系。作为一种具体实时方式,可采用如下步骤获取鼠标光标相对于屏幕平面坐标系的坐标以及该鼠标光标相对于WPF应用程序主窗体平面坐标系的坐标;将鼠标光标相对于屏幕的坐标与鼠标光标相对于WPF应用程序的坐标的比值作为转换关系。103、获取鼠标点击位置在屏幕坐标系的坐标;104、进行坐标转换;将鼠标点击位置相对于屏幕平面坐标系的坐标、预定的各WPF窗体相对于屏幕平面坐标系的位置依据步骤102中的转换关系进行转换。105、根据转换结果确定图像缩放控件显示范围;106、将WPF窗体渲染成图像放入图像缩放控件;当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件。107、初始化控件动画的起始位置、结束位置和时间间隔;根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔。作为一种具体实时方式,可采用如下步骤当打开WPF窗体时,将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的起始位置,将转换后的预定的各WPF窗体相对于屏幕的位置初始化为图像缩放的结束位置;当关闭WPF窗体时,从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF 应用程序主窗体平面坐标系原点最近的横坐标以及最近的纵坐标,将该最近的横坐标以及最近的纵坐标初始化为图像缩放的起始位置,将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的结束位置。108、根据起始位置、结束位置、时间间隔和显示范围,进行图像缩放。根据图像缩放的起始位置、结束位置和动画时间间隔在图像缩放控件需显示的范围内进行图像缩放。本发明方法通过图像缩放控件使得打开或者关闭WPF窗体时产生动画效果。在动画开始前,新建图像缩放控件并将其父级设置为WPF应用程序;然后将WPF窗体对于屏幕的平面坐标系转换到WPF窗体对于WPF应用软件主窗体的平面坐标系,由此根据预设的WPF 窗体对于屏幕的位置,可以确定图像缩放控件需显示的范围;将WPF窗体渲染成图像放入图像缩放控制;根据坐标转化后的鼠标点击位置和预定的WPF窗体对于屏幕的位置定义图像缩放的起始位置和结束位置;再定义动画时间间隔;然后进行打开或者关闭WPF窗体的动画效果,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。其中,步骤105包括从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最远的横坐标、最近的横坐标、最远的纵坐标以及最近的纵坐标,以最远横坐标减去最近横坐标的值作为所述图像缩放控件需显示的范围的宽度;以最远纵坐标减去最近纵坐标的值作为所述图像缩放控件需显示的范围的高度。具体的,建立如图3所示的屏幕平面坐标系,包括三个WPF窗体(1、2和3)离坐标系原点最近的横坐标是A,最远的横坐标是B,最远的纵坐标是H,最近的纵坐标是G,由此可知,在屏幕上,各WPF窗体代表的区域为CDEF所示,再将CDEF代表的范围转换至WPF应用程序主窗体的平面坐标系,即为缩放控件需显示范围。为了使得图像缩放有更好的视觉效果,在步骤107中进行图像缩放初始化时,还包括初始化动画时的透明度。打开WPF窗体时,设置透明度从O至I渐变;关闭WPF窗体时,设置透明度从I至O渐变,其中,O表示完全透明,I表示不透明。为了消除关闭窗体时,出现的屏幕闪烁状况,可在进行图像缩放前,设置隐藏WPF 窗体的时间间隔,隐藏WPF窗体的时间间隔小于动画时间间隔。为了消除在动画开始时,屏幕出现闪烁的状况,可在进行打开窗体的图像缩放前, 将需要渲染成图像的WPF窗体设置在屏幕显示区域外。在106步骤中,可将图像按照渲染的先后顺序放入图像缩放控件,方便图像缩放控件的显示。请参考图2,一种同时缩放多个WPF窗体的装置,包括控件创建单元Tl,用于新建图像缩放控件,将图像缩放控件的父级设置为WPF应用程序;第一获取单元T2,用于获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF 窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系;第二获取单元T3,用于获取鼠标点击位置相对于屏幕的坐标;坐标转换单元T4,用于将鼠标点击位置相对于屏幕的坐标、预定的各WPF窗体相对于屏幕的位置依据上述转换关系进行转换;控件显示内容确定单元T5,用于根据转换后的高度和宽度确定图像缩放控件需显示的范围;WPF窗体渲染单元T6,用于获取WPF窗体状态,当WPF窗体为显示状态时,将该WPF 窗体渲染成图像;以及将图像放入图像缩放控件;初始化单元T7,用于根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔;图像缩放单元T8,用于根据图像缩放的起始位置、结束位置和动画时间间隔在图像缩放控件需显示的范围内进行图像缩放。本发明装置通过图像缩放控件使得打开或者关闭WPF窗体时产生动画效果。在动画开始前,新建图像缩放控件并将其父级设置为WPF应用程序;然后将WPF窗体对于屏幕的平面坐标系转换到WPF窗体对于WPF应用软件主窗体的平面坐标系,由此根据预设的WPF 窗体对于屏幕的位置,可以确定图像缩放控件需显示的范围;将WPF窗体渲染成图像放入图像缩放控制;根据坐标转化后的鼠标点击位置和预定的WPF窗体对于屏幕的位置定义图像缩放的起始位置和结束位置;再定义动画时间间隔;然后进行打开或者关闭WPF窗体的动画效果,可以消除进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。
其中,第一获取单元T2获取转换关系时,获取鼠标光标相对于屏幕的坐标以及该鼠标光标相对于WPF应用程序的坐标;将鼠标光标相对于屏幕的坐标与鼠标光标相对于 WPF应用程序的坐标的比值作为转换关系;控件显示内容确定单元T5确定显示范围时,从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最远的横坐标、最近的横坐标、最远的纵坐标以及最近的纵坐标,以最远横坐标减去最近横坐标的值作为所述图像缩放控件需显示的范围的宽度;以最远纵坐标减去最近纵坐标的值作为所述图像缩放控件需显示的范围的高度;初始化单元T7初始化图像缩放的起始位置和结束位置时,若打开WPF窗体,则将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的起始位置,将转换后的预定的各WPF窗体相对于屏幕的位置初始化为图像缩放的结束位置;若关闭WPF窗体,则从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最近的横坐标以及最近的纵坐标,将该最近的横坐标和最近的纵坐标初始化为图像缩放的起始位置,将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的结束位置。为了使得图像缩放有更好的视觉效果,初始化单元T7进行图像缩放初始化时,还包括初始化动画时的透明度。打开WPF窗体时,设置透明度从O至I渐变;关闭WPF窗体时,设置透明度从I至O渐变,其中,O表示完全透明,I表示不透明。为了消除关闭窗体时,出现的屏幕闪烁状况,初始化单元T7设置隐藏WPF窗体的时间间隔,隐藏WPF窗体的时间间隔小于动画时间间隔。为了消除在动画开始时,屏幕出现闪烁的状况,可在进行打开窗体的图像缩放前, 将需要渲染成图像的WPF窗体设置在屏幕显示区域外。WPF窗体渲染单元T6可将图像按照渲染的先后顺序放入图像缩放控件,方便图像缩放控件的显示。作为一种具体实时方式,从WPF应用程序打开多个WPF窗体(这几个窗体高可以不一样,宽度可以不一样),点击关闭全部窗体按钮,图像缩放控件(例如ViewBox)出现于这几个窗体上面,然后这几个WPF窗体消失,ViewBox开始动画,从开始位置高宽逐渐缩小, 透明度从I到O渐变,最后缩进鼠标点击的地方(结束位置),整个过程动画流畅,不出现屏幕闪烁。以上本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
8
权利要求
1.一种同时缩放多个WPF窗体的方法,其特征是,包括步骤新建图像缩放控件,将所述图像缩放控件的父级设置为WPF应用程序;获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系;获取鼠标点击位置相对于屏幕的坐标;将鼠标点击位置相对于屏幕平面坐标系的坐标和预定的各WPF窗体相对于屏幕平面坐标系的位置依据所述转换关系进行转换;根据转换结果确定图像缩放控件需显示的范围;当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件; 根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔;根据所述图像缩放的起始位置、结束位置和动画时间间隔在所述图像缩放控件需显示的范围内进行图像缩放。
2.根据权利要求I所述的同时缩放多个WPF窗体的方法,其特征是,所述获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系的步骤包括获取鼠标光标相对于屏幕平面坐标系的坐标以及该鼠标光标相对于WPF应用程序主窗体平面坐标系的坐标;将所述鼠标光标相对于屏幕平面坐标系的坐标与所述鼠标光标相对于WPF应用程序主窗体平面坐标系的坐标的比值作为所述转换关系。
3.根据权利要求I所述的同时缩放多个WPF窗体的方法,其特征是,所述根据转换结果确定图像缩放控件需显示的范围包括步骤从转化后预定的各WPF 窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最远的横坐标、最近的横坐标、最远的纵坐标以及最近的纵坐标,以最远横坐标减去最近横坐标的值作为所述图像缩放控件需显示的范围的宽度;以最远纵坐标减去最近纵坐标的值作为所述图像缩放控件需显示的范围的高度。
4.根据权利要求I所述的同时缩放多个WPF窗体的方法,其特征是,所述根据转换结果初始化图像缩放的起始位置和结束位置的步骤包括当打开WPF窗体时,将转换后的鼠标点击位置相对于屏幕平面坐标系的坐标初始化为图像缩放的起始位置,将转换后的预定的各WPF窗体相对于屏幕的位置初始化为图像缩放的结束位置;当关闭WPF窗体时,从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最近的横坐标以及最近的纵坐标,将该最近的横坐标以及最近的纵坐标初始化为图像缩放的起始位置,将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的结束位置。
5.根据权利要求I所述的同时缩放多个WPF窗体的方法,其特征是,在进行图像缩放初始化时,还包括初始化动画时的透明度。
6.根据权利要求4所述的同时缩放多个WPF窗体的方法,其特征是,若关闭WPF窗体,则在进行图像缩放前,设置隐藏WPF窗体的时间间隔,所述隐藏WPF窗体的时间间隔小于所述动画时间间隔。
7.根据权利要求4所述的同时缩放多个WPF窗体的方法,其特征是,在进行打开WPF窗体的图像缩放前,将需要渲染成图像的WPF窗体设置在屏幕显示区域外。
8.根据权利要求I至7任一项所述的同时缩放多WPF窗体的方法,其特征是,在所述将图像放入图像缩放控件的步骤中,将图像按照渲染的先后顺序放入图像缩放控件。
9.一种同时缩放多个WPF窗体的装置,其特征是,包括控件创建单元,用于新建图像缩放控件,将所述图像缩放控件的父级设置为WPF应用程序;第一获取单元,用于获取将WPF窗体相对于屏幕平面坐标系的位置转换到WPF窗体相对于WPF应用程序主窗体平面坐标系的位置的转换关系;第二获取单元,用于获取鼠标点击位置相对于屏幕平面坐标系的坐标;坐标转换单元,用于将鼠标点击位置相对于屏幕平面坐标系的坐标和预定的各WPF窗体相对于屏幕平面坐标系的位置依据所述转换关系进行转换;控件显示内容确定单元,用于根据转换结果确定图像缩放控件需显示的范围;WPF窗体渲染单元,用于获取WPF窗体状态,当WPF窗体为显示状态时,将该WPF窗体渲染成图像;以及将图像放入图像缩放控件;初始化单元,用于根据转换结果初始化图像缩放的起始位置和结束位置;以及初始化图像缩放控件的动画时间间隔;图像缩放单元,用于根据所述图像缩放的起始位置、结束位置动画时间间隔在所述图像缩放控件需显示的范围内进行图像缩放。
10.根据权利要求9所述的同时缩放多个WPF窗体的装置,其特征是,所述第一获取单元获取所述转换关系时,获取鼠标光标相对于屏幕的坐标以及该鼠标光标相对于WPF应用程序的坐标;将所述鼠标光标相对于屏幕的坐标与所述鼠标光标相对于WPF应用程序的坐标的比值作为所述转换关系;所述控件显示内容确定单元确定显示范围时,从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最远的横坐标、最近的横坐标、最远的纵坐标以及最近的纵坐标,以最远横坐标减去最近横坐标的值作为所述图像缩放控件需显示的范围的宽度;以最远纵坐标减去最近纵坐标的值作为所述图像缩放控件需显示的范围的高度;所述初始化单元初始化图像缩放的起始位置和结束位置时,若打开WPF窗体,则将转换后的鼠标点击位置相对于屏幕的坐标初始化为图像缩放的起始位置,将转换后的预定的各WPF窗体相对于屏幕的位置初始化为图像缩放的结束位置;若关闭WPF窗体,则从转化后预定的各WPF窗体相对于屏幕的位置中,获取离WPF应用程序主窗体平面坐标系原点最近的横坐标以及最近的纵坐标,将该最近的横坐标和最近的纵坐标初始化为图像缩放的起始位置,将转换后的鼠标点击位置相对于屏幕平面坐标系的坐标初始化为图像缩放的结束位置。
全文摘要
本发明提出一种同时缩放多个WPF窗体的方法,包括步骤新建图像缩放控件;获取屏幕坐标系到WPF应用程序坐标的转换关系;获取鼠标点击位置在屏幕坐标系的坐标;进行坐标转换;根据转换结果确定图像缩放控件显示范围;将WPF窗体渲染成图像放入图像缩放控件;初始化控件动画的起始位置、结束位置和时间间隔;根据起始位置、结束位置、时间间隔和显示范围,进行图像缩放。本发明还提出一种同时缩放多个WPF窗体的装置,可以消进行窗体缩放动画时,各窗体变化不一致的现象,提高用户体验和动画效率,提高系统资源利用率。
文档编号G06F9/44GK102591646SQ20111044170
公开日2012年7月18日 申请日期2011年12月23日 优先权日2011年12月23日
发明者陆明添 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1