WinForm和WPF的区别
一、控件的差异
作为Windows桌面UI开发的两大.net开发库,WinForm和WPF同时存在着。之所以功能如此重合的两个库同时存在,是因为两者的底层差异非常大,WinForm底层依赖于传统的Win32API,特别是User32.dll;而WPF则底层依赖于Direct3D。 而我们知道User32和Direct3D两者是平行存在,彼此独立的。WPF之前几乎所有的WindowsUI开发都依赖于User32,当然游戏除外。随着Direct3D的日趋成熟和显卡的普通性能提升,微软力图改变这种状况,所以开发出了WPF来让一般的应用程序也使用Direct3D进行UI开发。当然,这一改变的影响是巨大的,传统的User32是以窗口为基础的,所有的控件都是一种特殊的窗口而已。而在Direct3D里,不再有窗口的存在。下面我们通过一个简单的实例来对比WinForm程序和WPF程序。
两者的UI看起来完全一样,都是有两个TextBox和一个Button组成。如下图所示。
启动Spy++,查找这两个程序的主窗口,见下面的红色区域。
可以很清楚的看出,WinForm程序中的每个控件都是一个窗口,而WPF程序中的控件不再是窗口。
由于WPF中的控件不再是窗口,所以和控件的通信就不能再使用窗口消息(SendMessage)了,这将导致很大的开发差异。
< ps:《C#实现不同窗口间的消息通信》的2种方法可参考https://blog.csdn.net/dong123ohyes/article/details/117160473 >
尽管WinForm和WPF中的控件类名相同,但其实两者没有任何关联,各自定义在不同的命名空间中。
WinForm和WPF的区别相关推荐
- 技术总结:winform和wpf的区别 以及 项目的“设计规划”
一.winform和wpf的区别: 1.winform 是"前后端"不分离的,wpf是前后端分离的.这个是winform的设计器和c#编码"耦合度"太高了,不能 ...
- 基础tips:.NET和ASP.NET还有ASP到底是什么?客户端WinForm和WPF的区别?前端三大框架,webpack和vite的比较,android三大框架.
1..NET和ASP.NET分别是什么? .NET是微软的一个开发平台,其主要核心就是.NET Framwork,这个平台的一大特点就是跨语言性,不管是什么语言,c.c++.c#.F#.J#.vb等语 ...
- Winform、WPF、Silverlight、MFC区别与联系
WinForm 在Windows中,诸如窗体绘制等功能由GDI(图形设备接口)实现,放在操作系统内核中.Windows Forms在底层使用的是GDI+.GDI+是GDI的"面向对象包装&q ...
- wpf和winform的那点区别
一提起winform和wpf有啥不同,可能大部分人都会想到wpf拥有漂亮的界面.wpf中也可以使用winform,大部分情况下,都没有任何问题,极少的情况下,可能会出现问题. 我们就来看一下: voi ...
- winform 与WPF
winform 与WPF 在多线程上的改进性能没大区别,WPF 是富客户端,winform是常见的客户端,就是说wpf实现一些绚丽界面比winform更容易,这就是他们的区别,当然wpf是微软取代wi ...
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])...
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- Windows程序设计:MFC 、Winform 和 WPF 比较
MFC生成本机代码,自然是很快,可是消息循环减缓了界面显示速度. WinForm封装了win32的api,多次进行P/invoke操作(大部分使用p/invoke操作封装),速度慢. WPF是一种新的 ...
- 浅析.Net 在 winform及wpf中涉及界面交互的多线程类的封装
我们在开发客户端程序时,经常要用到多线程 而我们知道 , .Net 中从线程安全的考虑,对控件改变的调用要通过Invoke, beginvoke 来进行,这就涉及怎么进行工作线程与界面的互操作. 本文 ...
- winform,wpf全屏 还显示任务栏的解决方法
winform,wpf全屏 还显示任务栏的解决方法 参考文章: (1)winform,wpf全屏 还显示任务栏的解决方法 (2)https://www.cnblogs.com/Viki/archive ...
- 2021-12-12 WPF面试题 相对于Winform,WPF有什么优势?
相对于Winform,WPF有什么优势? 1 - 绑定(更简约的编码) 2 - 灵活的外观和感受(资源和样式) 3 - 声明式编程 (XAML) 4 - 表现层混合动画(动画开发简单) 5 - 快速加 ...
最新文章
- 2017云计算及工业物联网论坛即将于广州开幕
- java EE的apache-tomcat配置文件web.xml
- 鏖战双十一-阿里直播平台面临的技术挑战
- python3.6入门到高阶(全栈) day02 while循环 运算符 格式化输出 编码
- python删除指定文件夹下文件和文件夹的方法
- [云炬创业基础笔记] 第四章测试11
- DBA邀请函丨数据库大咖讲坛来深圳啦!线下沙龙+线上直播,共享技术盛会!
- 如何评价@左耳朵耗子 的《关于阿里云经典网络的问题》?
- 系统设计之架构图——应用架构图、技术架构图、业务架构图
- 机器人出卢安娜飓风_LOL:卢安娜的飓风已经过时?哪些英雄还会出这件装备?...
- config配置中文解释
- wps时间戳转换成日期
- 【转载】国内主要的量化交易平台及链接
- linux基础操作合集(正在写)
- 【供应链架构day9】美团配送系统架构的演进之路:从MVP到规模化
- Excel会计应学35招秘技
- 我敢说80% 的程序员都掉进了「老鼠赛跑」的陷阱
- 3. ZCU102 HDMI Demo工程修改【PCIE视频传输】
- Vivado中的TCL脚本语言
- 百度地图导航及水印(补充)
热门文章
- 7.24实习培训日志-Docker-Compose
- Oracle学习笔记(1)----忘记用户名的密码该如何找回
- Object-C,NSSet,不可变集合
- SharedPreferences小探
- Java类权限和类成员权限举例解析
- 语音推送提醒php,实时语音后台通知消息 - 百度免费的tts实现后台实时在线语音消息提醒 – 基于ThinkPHP和Bootstrap的极速后台开发框架...
- word段落居中的快捷键_Word一分钟完成人员名单排版,这方法又快又好!
- ubuntu 添加删除源
- ubuntu18.10 编译安装caffe gpu版本
- Qt_加速编译 快速编译 make -j4