将Winform和wpf的界面转换为CPF代码用来实现跨平台

CPF的设计器里带界面代码转换功能,将运行中的Winform或者wpf的程序界面转换为cpf代码,主要转换控件类型和布局,默认支持的是常用的原生控件。不支持Netcore,只支持.Netframework,wpf的只能是.net4.0和以上的

在设计界面的左边的圈圈按钮,点击打开就是界面代码转换界面。使用的时候按住界面代码转换窗体上的圈圈按钮,拖到你要转换的程序的界面上,自动将程序的界面转换为界面代码,并在设计器上显示。

将Winform和wpf的界面转换为CPF代码用来实现跨平台

将Winform和wpf的界面转换为CPF代码用来实现跨平台

 

WPF转换效果

wpf程序运行界面

将Winform和wpf的界面转换为CPF代码用来实现跨平台

 

WPF设计界面

将Winform和wpf的界面转换为CPF代码用来实现跨平台

 

CPF转换后的设计界面

将Winform和wpf的界面转换为CPF代码用来实现跨平台

 

CPF运行效果

将Winform和wpf的界面转换为CPF代码用来实现跨平台

 

WPF局部代码转换效果

将wpf里的Calendar进行局部控件转换,转换到的代码在下面文本框里,复制文本框里的代码,直接粘贴到CPF的Panel里

将Winform和wpf的界面转换为CPF代码用来实现跨平台

将Winform和wpf的界面转换为CPF代码用来实现跨平台

 

Winform效果

设计器和运行效果

将Winform和wpf的界面转换为CPF代码用来实现跨平台

 

CPF转换后的效果

将Winform和wpf的界面转换为CPF代码用来实现跨平台

 

 将Winform和wpf的界面转换为CPF代码用来实现跨平台

加上CSS后的效果 

将Winform和wpf的界面转换为CPF代码用来实现跨平台

 

 

当然不能百分百转换,只有UI代码,没有业务逻辑的,主要支持原生控件的常用控件,不能直接支持自定义控件。不过有提供简单的自定义控件和CPF的控件映射,打开开发者工具的安装目录,里面的CodeConvert.txt打开,前面是自定义控件的类型名,后面是对应的CPF控件名,中间用|分割。另外对WPF自定义模板的转换支持不够,只能根据自己的需求进行局部转换,把需要的模板转换出来。

将Winform和wpf的界面转换为CPF代码用来实现跨平台

将Winform和wpf的界面转换为CPF代码用来实现跨平台

 

有了转换好的UI代码,你还需要改改,比如调整CSS和修改控件属性等等,另外加上数据绑定和命令绑定,加上业务逻辑。

可能有人会问什么原理,其实就是程序注入,注入代码到运行的Winform和wpf程序中,然后遍历里面的控件,再把这些控件转换为CPF代码

 

将Winform和wpf的界面转换为CPF代码用来实现跨平台

上一篇:CASE20210624 - Windows远程连接身份验证问题


下一篇:C# 抽象类有构造函数吗?