winform和WPF的那点事~
一、定义
1、Winform的定义:
WinForm是·Net开发平台中对Windows Form的一种称谓。
2、WPF的定义:
WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面
二、特点
1、Winform的特点:
- 功能强大:Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的应用程序
- 使用安全:Windows窗体充分利用公共语言运行库的安全特性。
- 操作方便:提供易于连接OLEDB和ODBC数据源的数据控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2以及Oracle等
- 控件灵活:Windows窗体提供了一套丰富的控件,并且开发人员可以定义自己有特色的新的控件。
- 数据管理:方便的数据显示和操作:应用程序开发中最常见的情形之一是在窗体上显示数据。Windows窗体对数据库处理提供全面支持。可以访问数据库中的数据,并在窗体上显示和操作数据。
- 向导明确:向用户提供创建窗体、数据处理、打包和部署等的分布指导。
2、WPF的特点:
- 功能和界面分离:程序人员与美工人员明确分工,美工人员可以使用Expression Studio中套装工具可视化的设计界面。然后交给程序开发组中的XAML就可以。让程序人员直接套用到开发环境,不需要想页面怎么切了。
- 矢量图的超强支持:兼容支持2D绘图,比如矩形、自定义路径,位图等。文字显示的增强,XPS和消锯齿。三维强大的支持。包括3D控件及事件,与2D及视频合并打造更立 体效果。渐变、使用高精确的(ARGB)颜色,支持浮点类型的像素坐标。
- 灵活、易扩展的动画机制:.Net Framework 3.0类库提供了强大的基类,只需继承就可以实现自定义程序使用绘制。接口设计非常直观,完全面向对象的对象模型。
- 可以使用任何一种.Net编程语言:XAML主要针对界面的可视化控件描述,成生进会分析成.cs或.vb文件,并最后将编译为CLR中间运行语言。
三、该如何选择
要考虑的问题:
- 考虑目标客户机器配置以及系统
- 根据程序界面要求
- 项目属于什么类型,外观还是技术型
- 目标群体是什么样的人
- 开发者是什么样的人
- 开发人员对Winform和WPF熟悉程度怎样
-------------------------------------------------------------------------------------------
从程序上讲,都以事件的形式调用处理:
- winform开发上比WPF稍容易点,但整体上说其实没多大区别。
- WPF基于directX,所以对于3D的处理更好,画面也更加酷炫。
- winform的画面设计采用与开发语言相同的语言实现,并保存在相同的代码类型文件中,移植性不好。WPF的画面采用XML形式书写,保存在xml中,移植性更好,也更直观易懂。
- 另有一点细微差别,就是winform的控件可以叠放,如两个button的坐标可以完全一样,只能看到上面的一个。而WPF的控件不能叠放,所以如果有两个button位置相同,你必须要隐藏一个,否则两个都会被看到。
- WPF用的MVVM模式
- winform用的事件驱动WPF有三种应用模式:应用、浏览应用、文档应用。
- 应用就是一般的窗口应用,浏览应用就是象网页一样的一页一页的应用,文档应用是用来显示内容的浏览应用功能子集,而不是MVC模型。
- 一般应用其实也就是每个页面拥有一个独立的窗口。
总结一下:
WinForm:界面+程序一个人能搞完
WPF:还得给你们这帮码农配一个美工,当然如果你本身擅长美工的话,一个人也是没有问题的。
winform窗体设计,企业管理系统界面设计参考:https://blog.csdn.net/qq_36482772/article/details/78008531
WPF窗体设计,仿TIM QQ界面设计,参考:https://www.jianshu.com/p/d105e40a90d4
在Winform窗体中使用WPF控件,具体实现请转至 https://www.cnblogs.com/DebugLZQ/archive/2012/05/19/2508846.html
注:以上文章有些描述是网上摘录的,如有讲述不对的,欢迎指出,感谢 !!!
winform和WPF的那点事~的更多相关文章
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- WinForm 与WPF 窗体之间的想到调用
先放置一个容器控件,并设计 好WinForm(或WPF)窗口 winform 调用 wpf ElementHost el = new ElementHost(); el.Dock = DockStyl ...
- 基于Winform、WPF等的客户端文件下载
有时候,我们用C#写一些客户端应用程序需要从服务器下载一些资源,如图片.dll.配置文件等.下面就来说一下,在Winform及WPF中如何下载文件. 我们的资源大多放在自己的网站上,或者从其他网站下载 ...
- 准备.Net转前端开发-WPF界面框架那些事,值得珍藏的8个问题
题外话 不出意外,本片内容应该是最后一篇关于.Net技术的博客,做.Net的伙伴们忽喷忽喷..Net挺好的,微软最近在跨平台方面搞的水深火热,更新也比较频繁,而且博客园的很多大牛也写的有跨平台相关技术 ...
- 如何去掉WinForm或者WPF的最大化和最小化按钮
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何去掉WinForm或者WPF的最大化和最小化按钮.
- winform,wpf全屏 还显示任务栏的解决方法
原文:winform,wpf全屏 还显示任务栏的解决方法 以wpf为例: 全屏代码: this.Topmost = true; this.WindowStyle = System.Windows.Wi ...
- WinForm、wpf、silverlight三者关系
最近在学C#.NET,基本语法学习的差不多了,接下来准备学习图形界面设计部分.但是我目前对于.NET的WinForm.wpf.silverlight这三者的关系弄的不是很清楚,一般书中很少介绍wpf和 ...
- 对比MFC和Winform及WPF
MFC 生成本机代码,自然是很快.可是,消息循环,减缓了界面显示速度.winform 封装了 win32 的api,多次进行P/invoke 操作 (大部分使用p/invoke操作封装),速度慢 .w ...
- windows 10 透明毛玻璃,winform和wpf方法
win10的透明毛玻璃,winform和wpf方法,win7.8不能用,只是win10 public partial class Form1 : Form { [DllImport("use ...
随机推荐
- asn1 学习笔记
语法 定义 Name ::= type 定义一个名称为“Name”的元素 它是一个给定ASN.1类型“Type”的实例 MyName ::= IA5String //IA5String(类似于ASCI ...
- 搭建PowerDNS+LAP+NFS+MySQL主从半节点同步实现LAMP架构
实验环境:(共7台机器) PowerDNS: 192.168.99.110 两台LAP: 192.168.99.120 和 192.168.99.130 NFS服务器:192.168.99.14 ...
- 【iOS】the executable was signed with invalid entitlements
又遇到了这个问题,貌似之前遇到过,如图所示: 原因:开发证书里没添加手机. PS: Xcode7 除外,据说已经不需要证书了,这里用的是 6.4
- 【iOS】UIImage 等比率缩放
这两天处理引导页面的时候遇到了图片略大的问题,上网查找后找到了解决方法.用的是 UIImage 的等比率缩放,虽然不难,但之前没接触过,故记之. 代码如下: - (UIImage *)scaleIma ...
- 【iOS】iOS CocoaPods 整理
github 上下载 Demo 时第一次遇到这个情况,当时有些不知所措,也没怎么在意,后来项目调整结构时正式见到了这个,并且自己去了解学习了. CocoaPods安装和使用教程 这篇文章写得很好!ma ...
- 前端笔记之React(六)ES6的Set和Map&immutable和Ramda和lodash&redux-thunk
一.ES6的Set.Map数据结构 Map.Set都是ES6新的数据结构,都是新的内置构造函数,也就是说typeof的结果,多了两个: Set 是不能重复的数组 Map 是可以任何东西当做键的对象 E ...
- 挂起(suspend)与线程阻塞工具类LockSupport
挂起(suspend)与线程阻塞工具类LockSupport 一般来说是不推荐使用suspend去挂起线程的,因为suspend在导致线程暂停的同时,并不会去释放任何锁资源. 如果其他任何线程想要访问 ...
- JDK1.8源码分析01之学习建议(可以延伸其他源码学习)
序言:目前有个计划就是准备看一下源码,来提升自己的技术实力.同时现在好多面试官都喜欢问源码,问你是否读过JDK源码等等? 针对如何阅读源码,也请教了我的老师.下面就先来看看老师的回答,也许会有帮助呢. ...
- 并发知识(2)——关于Thread
一些容易混淆的知识点 sleep vs wait sleep是Thread,wait是Object方法 wait和notify只能在同步代码块中调用 wait释放锁资源,sleep不释放锁资源 唤醒条 ...
- 阿里P8Java大牛仅用46张图让你弄懂JVM的体系结构与GC调优。
本PPT从JVM体系结构概述.GC算法.Hotspot内存管理.Hotspot垃圾回收器.调优和监控工具六大方面进行讲述.图文并茂不生枯燥. 此PPT长达46页,全部展示篇幅过长,本文优先分享前十六页 ...