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

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

WPF转换效果

wpf程序运行界面

WPF设计界面

CPF转换后的设计界面

CPF运行效果

WPF局部代码转换效果

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

Winform效果

设计器和运行效果

CPF转换后的效果

加上CSS后的效果

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

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

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

将Winform和wpf的界面转换为CPF代码用来实现跨平台的更多相关文章

  1. WPF设计界面不执行代码

    一般在我们在设计WPF XAML界面时,XAML 引用一些后端的类.比如UserControl.Converter.MVVM,引用 xmlns:ALLUserControl="clr-nam ...

  2. 【源码分享】WPF漂亮界面框架实现原理分析及源码分享

    1 源码下载 2 OSGi.NET插件应用架构概述 3 漂亮界面框架原理概述 4 漂亮界面框架实现  4.1 主程序  4.2 主程序与插件的通讯   4.2.1 主程序获取插件注册的服务   4.2 ...

  3. WPF换肤之四:界面设计和代码设计分离

    原文:WPF换肤之四:界面设计和代码设计分离 说起WPF来,除了总所周知的图形处理核心的变化外,和Winform比起来,还有一个巨大的变革,那就是真正意义上做到了界面设计和代码设计的分离.这样可以让美 ...

  4. WinForm、wpf、silverlight三者关系

    最近在学C#.NET,基本语法学习的差不多了,接下来准备学习图形界面设计部分.但是我目前对于.NET的WinForm.wpf.silverlight这三者的关系弄的不是很清楚,一般书中很少介绍wpf和 ...

  5. 对比MFC和Winform及WPF

    MFC 生成本机代码,自然是很快.可是,消息循环,减缓了界面显示速度.winform 封装了 win32 的api,多次进行P/invoke 操作 (大部分使用p/invoke操作封装),速度慢 .w ...

  6. 【Win32 API】利用SendMessage实现winform与wpf之间的消息传递

    原文:[Win32 API]利用SendMessage实现winform与wpf之间的消息传递 引言    有一次心血来潮,突然想研究一下进程间的通信,能够实现消息传递的方法有几种,其中win32ap ...

  7. Winform、WPF、Silverlight、MFC区别与联系

    WinForm 在Windows中,诸如窗体绘制等功能由GDI(图形设备接口)实现,放在操作系统内核中.Windows Forms在底层使用的是GDI+.GDI+是GDI的“面向对象包装”,使用C++ ...

  8. WinForm和WPF颜色对象的转换

    原文:WinForm和WPF颜色对象的转换 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/article/details ...

  9. winform和WPF的那点事~

    一.定义 1.Winform的定义: WinForm是·Net开发平台中对Windows Form的一种称谓. 2.WPF的定义: WPF(Windows Presentation Foundatio ...

随机推荐

  1. 【Web前端HTML5&CSS3】05-样式继承与其他概念

    笔记来源:尚硅谷Web前端HTML5&CSS3初学者零基础入门全套完整版 目录 样式继承与其他概念 1. 继承 2. 选择器的权重 3. 长度单位 像素 屏幕分辨率 图像分辨率 百分比 em ...

  2. 3D高清电商购物小图标图片_在线商城三维icon图标素材大全

    3D高清电商购物小图标图片_在线商城三维icon图标素材大全

  3. 华为eNSP模拟器— telnet实验

    华为eNSP模拟器-telnet实验 一.实验一 路由交换之间实现telnet登陆 实验拓扑 实验目的: 路由器作为 telnet 服务器 交换机作为客户端去连接路由器 实验步骤: 路由器配置 < ...

  4. Java和JDK版本的关系-(转载)

    JAVA的版本最开始是1995年的JDK Alpha and Beta版本,第二年发布JDK1.0版本之后就是JDK1.1,JDK1.2.到1998年,不再叫JDK了,而是叫J2SE,但是版本号还是继 ...

  5. STM32串口编程易错点

    注意   串口发送函数 使用STM官方的LIB 中的库函数发送之后 加一点延时   否则会错误  接收数据不正常 正确做法是  加上等待发送完成

  6. GCC参数详解-(转自:篱笆博客)

    gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言, ...

  7. centos ping命令找不到服务

    1 首先 添加dns服务器 vi /etc/resolv.conf 在文件中添加如下两行: nameserver 8.8.8.8 nameserver 8.8.4.4 保存退出,重启服务器.之后再pi ...

  8. GO学习-(31) Go语言操作Elasticsearch

    Elasticsearch 本文简单介绍了ES.Kibana和Go语言操作ES. Elasticsearch 介绍 Elasticsearch(ES)是一个基于Lucene构建的开源.分布式.REST ...

  9. openresty 学习笔记番外篇:python的一些扩展库

    openresty 学习笔记番外篇:python的一些扩展库 要写一个可以使用的python程序还需要比如日志输出,读取配置文件,作为守护进程运行等 读取配置文件 使用自带的ConfigParser模 ...

  10. 智能驾驶L2发展策略

    智能驾驶L2发展策略 智能驾驶L2,以们通俗的定义是,以高级辅助驾驶的产品为主的各种巡航产品,包括定速巡航,自适应巡航ACC,预见性巡航,智能巡航等等. 车辆驾驶是集注意力高度集中,手把控方向盘和换挡 ...