【转】wpf和winform的区别

【转】wpf和winform的区别WinForm 是 Net 开发平台中对 WindowsForm 的一种称谓 WPF WindowsPrese 是微软推出的基于 Windows 的用户界面框架 属于 NETFramework 0 的一部分 它提供了统一的编程模型 语言和框架 真正做到了分离界面设计人员与开发人员的工作 同时它提供了全新的多媒体交互用户图形界面 是微软推出取代 winform 的产品 能做到分离界面设计人员与开发人员的工作 提供多媒体交互用户图形界面 三大核心程序集是 presentat

WinForm是·Net开发平台中对Windows Form的一种称谓。

 

WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。是微软推出取代winform的产品,能做到分离界面设计人员与开发人员的工作,提供多媒体交互用户图形界面,三大核心程序集是presentationcore、presentationFramework、windowsBase

【转】wpf和winform的区别

 

WPF和winform最大的区别在于WPF底层使用的DirectX,winform底层使用的是GDI+,所以WPF的图形界面上更胜一筹

(推荐学习:PHP视频教程)

GDI+(Graphics Device Interface)图形设备接口,它的主要任务是负责绘图程序之间的信息交换、处理,所有windows程序的图形输出

DirectX(Direct Extension)多媒体编程接口,加强3D图形和声音效果,有很多API组成。按照性质分类可分为四大部分:显示部分,声音部分,输入部分和网络部分

在WinForm程序开发时,最头疼的一个问题就是,worker线程修改控件的属性而导致程序崩溃,而且这种非法操作并不是每次都失败。WinForm控件提供了InvokeRequired属性来判断当前线程是不是控件创建线程。问题是当控件树很深是,这个属性会比较慢。

 

WPF开始设计的时候,就考虑到了多线程的问题。大部分的WPF类都继承于DispatcherObject。DispatcherObject实际就是对Dispatcher的一个简单封装。Dispatcher提供了类似InvokeRequired的方法(CheckAccess)。这个方法只是比较线程的ID,所以会很快。另外,Dispatcher提供了优先队列,异步调用,Timer等功能,简化了开发多线程GUI程序。

控件的Composition

 

在WinForm如果要实现一个有Checkbox的下拉菜单,将不得不处理复杂的Window消息。而通过WPF控件的Content Model和Layout系统,WPF控件可以包括任何类型的控件,甚至.Net CLR对象。很多现代的控件厂商也提供了Composition的控件,实现方法和WPF的Content模型也比较相似。WPF开发团队应该借鉴了Infragistics的很多想法。有了这个基础,开发新的WPF控件更加简单了。

XAML

 

个人觉得XAML应该是WPF中比较划时代的东东。通过XAML,我们可以用文本的方式描述复杂的Object Graph。这个想法在VB中就有了,不过XAML更简化,以便于使用工具来生成XAML。通过Command,Routing Event等机制,界面设计人员和程序员有比较清楚的界限。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202439.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:08
下一篇 2026年3月20日 上午7:08


相关推荐

  • C语言中struct typedef 以及结构体指针用法

    C语言中struct typedef 以及结构体指针用法struct typedef 以及结构体指针用法 typedef 用法结构体指针用法结构体初始化 typedef 是类型定义的意思 typedefstruc 是为了使用这个结构体方便 具体区别在于 若 structnode 这样来定义结构体的话 在定义 node 的结构体变量时 需要这样写 structnoden 若用 typedef 可以这样写 typedefstruc

    2026年3月18日
    1
  • Claude Code 的 PHP 架构增强工具:Awesome Claude Code

    Claude Code 的 PHP 架构增强工具:Awesome Claude Code

    2026年3月13日
    2
  • pci接口千兆网卡_千兆汇聚 和万兆网卡

    pci接口千兆网卡_千兆汇聚 和万兆网卡pcie接口是一种高速串行计算机扩展总线标准,是高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,是替代旧的PCI,PCI-X和AGP总线标准的,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能。PCIE接口的优势:相对于传统PCI总线在单一时间周期内只能实现单向传输,PCIE的双单工连接能提供更高的传输速率和质量。PCI-E插槽是…

    2022年8月30日
    5
  • 【病毒取样】取证分析之逆向服务器提权开启3389远程连接工具[通俗易懂]

    【病毒取样】取证分析之逆向服务器提权开启3389远程连接工具[通俗易懂]通常用作黑客攻击网站拿到服务器Webshell提升站点服务器权限后,对站点和数据库服务器两台服务器分离的情况,延申权限到数据库服务器。开启数据库服务器的3389远程连接。1、程序信息MD5值:58946C2FE49563591EBE0D61F457DE0A大小:178KB(182,526字节)病毒家族名:Virus.Win32.Parite.a分析黑客小工具是怎么实现的,…

    2022年7月25日
    8
  • plink质控及转换文件、admixture软件学习记录

    plink质控及转换文件、admixture软件学习记录plink 质控及转换文件 admixture 软件学习记录目的 自定义 ped 文件和 map 文件 用 plink 质控及转换文件 使用 admixture 做群体结构学分析 ped 文件和 map 文件根据格式用 pandas 生成即可 非 vcf 文件 可按照以下两个文件格式转换数据 再进行后续分析 ped 文件格式 一行一个样本 每一列以空格为相隔 前六列为信息列 第一列 家系 ID FID 第二列 个体 ID IID 第三列 父本 ID 未知则设为 0 第四列 母本 ID 未知可设为 0 第五列 性别列 未知设为 0 第六列

    2026年3月19日
    1
  • django权限管理例子_php万能自定义表单系统

    django权限管理例子_php万能自定义表单系统前言上一篇我们分析了认证的源码,一个请求认证通过以后,第二步就是查看权限了,drf默认是允许所有用户访问权限源码分析源码入口:APIView.py文件下的initial方法下的check_per

    2022年7月31日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号