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

注:以上文章有些描述是网上摘录的,如有讲述不对的,欢迎指出,感谢 !!!

上一篇:Equal 和==比较


下一篇:nginx官方文档 之 http负载均衡 学习笔记