一种WPF页面动态生成方法、系统、设备及介质技术方案

技术编号:29132414 阅读:52 留言:0更新日期:2021-07-02 22:27
本发明专利技术提供了桌面应用程序开发技术领域的一种WPF页面动态生成方法、系统、设备及介质,方法包括如下步骤:步骤S10、通过WPF编写页面的逻辑代码以及界面代码,并进行预览操作;步骤S20、基于所述逻辑代码生成逻辑脚本,基于所述界面代码生成界面脚本;步骤S30、通过代码管理器将所述逻辑脚本编译成DLL文件,将所述界面脚本编译成XAML文件;所述DLL文件和XAML文件的文件名相同;步骤S40、在所述页面启动运行后,WPF的容器控件基于文件名关联所述DLL文件和XAML文件,执行所述DLL文件和关联的XAML文件,将所述DLL文件执行生成的数据加载到XAML文件执行生成的界面上,完成WPF页面的生成。本发明专利技术的优点在于:极大的提升了WPF页面生成的效率以及灵活性。

【技术实现步骤摘要】
一种WPF页面动态生成方法、系统、设备及介质
本专利技术涉及桌面应用程序开发
,特别指一种WPF页面动态生成方法、系统、设备及介质。
技术介绍
WPF(WindowsPresentationFoundation)是微软推出的基于Windows的用户界面框架,属于.NETFramework3.0的一部分,提供了统一的编程模型、语言和框架,做到了分离界面设计人员与开发人员的工作,同时提供了全新的多媒体交互用户图形界面。在WPF页面开发的过程中,由于WPF页面的功能和需求会随着项目的进展时刻变化,时常需要对已经完成的功能模块进行修改。为了降低因功能和需求的变化而增加的工作量,需要梳理出WPF页面中容易变动的部分和不容易变动的部分,后期修改的工作主要针对容易变动的部分即可。容易变动部分的修改,传统上存在如下两种方法:方法一是直接对变动的部分直接硬编码解译,在主程序进行修改,但是存在即使是微不足道的一些修改也不得不完全重新编译整个工程,程序更新迭代后还要进行验证和备份,且修改不一定适用于其他客户,造成版本众多不易维护的缺点;方法二是本文档来自技高网...

【技术保护点】
1.一种WPF页面动态生成方法,其特征在于:包括如下步骤:/n步骤S10、通过WPF编写页面的逻辑代码以及界面代码,并对所述页面进行预览操作;/n步骤S20、基于所述逻辑代码生成逻辑脚本,基于所述界面代码生成界面脚本;/n步骤S30、通过代码管理器将所述逻辑脚本编译成DLL文件,将所述界面脚本编译成XAML文件;所述DLL文件和XAML文件的文件名相同;/n步骤S40、在所述页面启动运行后,WPF的容器控件基于文件名关联所述DLL文件和XAML文件,执行所述DLL文件和关联的XAML文件,将所述DLL文件执行生成的数据加载到XAML文件执行生成的界面上,完成WPF页面的生成。/n

【技术特征摘要】
1.一种WPF页面动态生成方法,其特征在于:包括如下步骤:
步骤S10、通过WPF编写页面的逻辑代码以及界面代码,并对所述页面进行预览操作;
步骤S20、基于所述逻辑代码生成逻辑脚本,基于所述界面代码生成界面脚本;
步骤S30、通过代码管理器将所述逻辑脚本编译成DLL文件,将所述界面脚本编译成XAML文件;所述DLL文件和XAML文件的文件名相同;
步骤S40、在所述页面启动运行后,WPF的容器控件基于文件名关联所述DLL文件和XAML文件,执行所述DLL文件和关联的XAML文件,将所述DLL文件执行生成的数据加载到XAML文件执行生成的界面上,完成WPF页面的生成。


2.如权利要求1所述的一种WPF页面动态生成方法,其特征在于:所述步骤S20中,所述逻辑脚本为C#格式,所述界面脚本为XAML格式。


3.如权利要求1所述的一种WPF页面动态生成方法,其特征在于:所述步骤S30中,所述DLL文件通过System.CodeDom.Compiler方法生成;所述XAML文件通过System.IO.StreamWriter方法生成。


4.如权利要求1所述的一种WPF页面动态生成方法,其特征在于:所述步骤S40中,所述执行所述DLL文件和关联的XAML文件具体为:
通过System.Reflection.Assembly.UnsafeLoadFrom方法执行所述DLL文件,通过System.Windows.Markup.XamlReader.Load方法执行所述DLL文件关联的XAML文件。


5.一种WPF页面动态生成系统,其特征在于:包括如下模块:
页面代码编写模块,用于通过WPF编写页面的逻辑代码以及界面代码,并对所述页面进行预览操作;
脚本生成模块,...

【专利技术属性】
技术研发人员:李有财陈方平陈禹
申请(专利权)人:福建星云电子股份有限公司
类型:发明
国别省市:福建;35

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

1