一种界面布局方法以及装置制造方法及图纸

技术编号:14900784 阅读:81 留言:0更新日期:2017-03-29 16:14
本发明专利技术实施例公开了一种界面布局方法以及装置,其中方法包括:获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。采用本发明专利技术,可以提高基于C++语言的界面开发效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种界面布局方法以及装置。
技术介绍
在Windows平台下,常用的C++语言的界面开发库有MFC(MicrosoftFoundationClasses,微软基础类库)和WTL(WindowsTemplateLibrary,微软公司提供的一种界面开发库),这些界面开发库都提供了多种不同的系统原生控件,VS(MicrosoftVisualStudio,微软公司提供的开发工具)为这些界面开发库提供了一套可视化界面布局工具,并通过资源文件对控件布局信息进行描述,但系统原生控件一般不能嵌套,因此,导致界面布局不够灵活,即导致基于C++语言的界面开发效率不高。相比于现有的WPF(WindowsPresentationFoundation,微软公司提供的用户界面框架)而言,系统原生控件的可定制性和易用性都有很大的差距。虽然WPF有一套方便、快捷、灵活的界面设计和开发方案,且WPF的控件有很灵活的布局规则,但是WPF不支持原生C++语言,因此,基于C++语言的界面开发效率始终得不到提高。
技术实现思路
本专利技术实施例提供一种界面布局方法以及装置,可以提高基于C++语言的界面开发效率。本专利技术实施例提供了一种界面布局方法,包括:获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。相应地,本专利技术实施例还提供了一种界面布局装置,包括:获取模块,用于获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;创建绑定模块,用于创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;计算同步模块,用于根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。本专利技术实施例通过获取基于WPF的界面布局描述文件,并创建与界面布局描述文件中的各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,再将各WPF控件的布局参数分别添加到对应的第一控件,并将第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,再根据第一控件中的布局参数计算第一控件的布局信息,并将第一控件的布局信息同步到已绑定的第二控件中,使得可以将WPF的布局规则通过第一控件运用到基于C++语言的界面开发中,使得基于C++语言的界面开发也可以具有一套方便、快捷、灵活的界面设计和开发方案,以提高基于C++语言的界面开发效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种界面布局方法的流程示意图;图2是本专利技术实施例提供的其中一种控件转换绑定方法的流程示意图;图3是本专利技术实施例提供的其中一种控件计算同步方法的流程示意图;图4是本专利技术实施例提供的其中一种控件更新方法的流程示意图;图5是本专利技术实施例提供的一种界面布局装置的结构示意图;图6是本专利技术实施例提供的一种创建绑定模块的结构示意图;图7是本专利技术实施例提供的一种计算同步模块的结构示意图;图8是本专利技术实施例提供的另一种界面布局装置的结构示意图;图9是本专利技术实施例提供的又一种界面布局装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参见图1,是本专利技术实施例提供的一种界面布局方法的流程示意图,所述方法可以包括:S101,获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;具体的,首先可以通过VS的各类工具生成界面布局描述文件,所述界面布局描述文件为XAML(eXtensibleApplicationMarkupLanguage,可扩展应用程序标记语言)文件,然后本专利技术实施例所提供的界面布局装置可以获取基于WPF的界面布局描述文件,即获取XAML文件。所述XAML文件符合WPF的标准,所述XAML文件包括至少一个WPF控件,每个WPF控件均可以包含对应的布局参数以及标识参数。其中,WPF控件的标识参数可以为WPF控件的Name参数,Name参数为字符串类型且是WPF控件的标识;Name参数不为空时,必须是唯一的,不可重复。所述XAML文件是通过树形结构的方式来描述各个WPF控件之间的父子关系。本专利技术实施例可利用VS为WPF提供可视化的界面编辑工具和XAML文件编辑工具,也可利用其它工具对XAML文件进行编辑。S102,创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;具体的,所述界面布局装置获得XAML文件中的各个WPF控件后,可以根据预设的控件映射关系集合创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,其中,所述目标语言为C++语言,所述控件映射关系集合包含各种WPF控件与各个对应的基于C++语言的第一控件之间的映射关系,即在S101步骤之前需要预先将各种WPF控件通过C++语言转换成各个对应的第一控件,并将各种WPF控件与各第一控件之间的映射关系封装成所述控件映射关系集合。因此,根据所述控件映射关系集合创建对应的第一控件的具体过程可以为:在所述控件映射关系集合中找到与所述各WPF控件分别对应的映射关系,并根据所述映射关系获得各个对应的第一控件,以完成对所述第一控件的创建。所述第一控件可以称为仿WPF控件,之所以称为仿WPF控件,是因为仿WPF控件需要保持WPF控件的布局规则,因此,所述界面布局装置需要将所述各WPF控件的布局参数添加到对应的各个仿WPF控件中,以作为后续计算界面布局使用。所述界面布局装置还需要将所述各WPF控件的Name参数添加到对应的各个仿WPF控件中,使得各个仿WPF控件也可以通过Name参数进行标识。所述各仿WPF控件添加有对应的Name参数后,可以将所述Name参数不为空的仿WPF控件与对应的基于目标语言且用于显示的第二控件进行绑定。其中,所述第二控件所基于的目标语言也是C++语言,所述第二控件可以包本文档来自技高网...

【技术保护点】
一种界面布局方法,其特征在于,包括:获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。

【技术特征摘要】
1.一种界面布局方法,其特征在于,包括:获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。2.如权利要求1所述的方法,其特征在于,所述界面布局描述文件还包括所述各WPF控件的标识参数;所述创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,具体包括:创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数和标识参数分别添加到对应的所述第一控件,并将所述标识参数不为空的第一控件与对应的基于目标语言且用于显示的第二控件进行绑定。3.如权利要求2所述的方法,其特征在于,所述根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,具体包括:根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述标识参数不为空的第一控件的布局信息同步到已绑定的所述第二控件中。4.如权利要求3所述的方法,其特征在于,所述创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控
\t件的布局参数和标识参数分别添加到对应的所述第一控件,并将所述标识参数不为空的第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,包括:将所述界面布局描述文件中最上层的WPF控件作为目标WPF控件;创建与所述目标WPF控件对应的基于目标语言且用于计算布局信息的第一控件,并将所述目标WPF控件的布局参数和标识参数分别添加到对应的所述第一控件;判断所述第一控件的标识参数是否为空;若判断为是,则将下一个未处理的WPF控件作为目标WPF控件,并返回执行上述的控件创建步骤,直至所述界面布局描述文件中不存在未处理的WPF控件;若判断为否,则将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,并将下一个未处理的WPF控件作为目标WPF控件,并返回执行上述的控件创建步骤,直至所述界面布局描述文件中不存在未处理的WPF控件。5.如权利要求4所述的方法,其特征在于,所述根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述标识参数不为空的第一控件的布局信息同步到已绑定的所述第二控件中,包括:将所述界面布局描述文件中最上层的WPF控件对应的第一控件作为目标第一控件;根据所述目标第一控件中的布局参数计算所述目标第一控件的布局信息;判断所述目标第一控件是否绑定有所述第二控件;若判断为是,则将所述目标第一控件的布局信息同步到已绑定的所述第二控件中,并将下一个未计算的第一控件作为目标第一控件,并返回执行上述的布局信息计算步骤,直至计算出所有第一控件的布局信息;若判断为否,则将下一个未计算的第一控件作为目标第一控件,并返回执行上述的布局信息计算步骤,直至计算出所有第一控件的布局信息。6.如权利要求3所述的方法,其特征在于,在所述根据所述第一控件中的
\t布局参数计算所述第一控件的布局信息,并将所述标识参数不为空的第一控件的布局信息同步到已绑定的所述第二控件中的步骤之后,还包括:当检测到对所述第一控件的参数进行修改时,获取至少一个具有修改关联关系的第一控件,并将所述至少一个具有修改关联关系的第一控件中的最上层的第一控件作为待修改第一控件;更新所述待修改第一控件的布局信息;判断所述待修改第一控件是否绑定有所述第二控件;若判断为是,则将所述待修改第一控件的更新后的布局信息同步到已绑定的所述第二控件中,并将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回上述的布局信息更新步骤,直至所述至少一个具有修改关联关系的第一控件均已被更新;若判断为否,则将下...

【专利技术属性】
技术研发人员:李斌
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1