当前位置: 首页 > news >正文

WPF 认识WPF

  1. 什么是WPF?

WPF是Windows Presentation Foundation(Windows展示基础)简称,顾名思义是专门编写表示层的技术。WPF绚丽界面如下:

  1. GUI发展及WPF历史?

Windows系统平台上从事图形用户界面GUI(Graphic User Interface)已经经历了多次换代,从Win32API->MFC->ActiveX/COM/Visual Basic->WinForm,每次都使开发效率和质量产生飞跃,从2007年开始推出新一代GUI开发工具(WPF),使Windows程序GUI界面开发炫更简单。

  1. WCF、WPF与Silverlight的关系?

WCF是Windows通讯开发平台,它整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。统一了微软多种分布式技术(对外是一个系统,但是实际上是将系统分别运行到不同的服务器上),如Web Service,.Net Remoting,.Net 企业服务,MSMQ等。是微软最佳的数据访问层,而这一数据访问层的最佳消费者是WPF和Silverlight。Silverlight是WPF的一个子集,是WPF的“网络版”,与WPF有大部分的技术重叠,也就是说学好了WPF,Silverlight就学习的差不多了。

  1. WPF与WinForm的区别?

WinForm是事件驱动型的,底层使用的是GDI(图形设备接口)技术,优点是更加直接和直观;缺点是耦合性大。

WPF是数据驱动型的,底层使用DirectX(多媒体编程接口)技术,优点是能做出漂亮UI,UI与逻辑解耦,数据绑定使得开发更容易;缺点是占用资源较大,较低版本windows系统不能运行。

  1. 学习WPF的好处?

WPF由两部分组成,一个是用XAML写的界面,一个是C#写的后台代码,它们之间通过绑定的方式进行通信和联系,能很好的减少表示层与数据和业务逻辑之间的耦合,人员能更好分工,提供开发效率,也使得项目更加健壮(结构清晰,便于维护和扩展)。WPF开放了更深层的控件细节,并允许用户修改,用户能方便做出很炫丽的控件和UI。

  1. WPF学习注意事项和前景

WPF虽然减少了UI与逻辑的耦合,但他们之间的关系是通过绑定,命令等方式进行联系的,看起来不会那么之间,需要开发人员熟悉他们之间的绑定关系,并熟悉命令、路由、事件等相关技术。WPF提供的控件比较少,需要开发或UI自定义控件,熟悉控件细节和相关参数,熟练掌握附件属性、模板、样式、动画等相关技术。总之WPF入门是比较难的,但是属性之后你将开启多彩世界的大门。

WPF能够很容易做出绚丽的界面,对于公司产品而言这肯定是加分的,也是微软在Windows平台面向未来的技术,有较大开发前景。由于WPF是基于Windows平台的,不能跨平台,所以开发者也可以学习.NET、.NET Core、Silverlight、Xamarin等网页,移动和跨平台技术来丰富自己技术能力。

  1. WPF疑难解答

  1. Xaml与Xml区别和联系?

Xaml是Xml派生出来的语言,拥有Xml很多相似的特性,用来与后台程序进行分离解耦。

  1. Xaml与后台代码如何结合在一起,并可相互引用它们之间对象?

Xaml文件和后台cs文件都使用了partial(部分,可以把一个类拆分多处使用)关键字,使得它们相互分离有相互依存。

http://www.lryc.cn/news/41631.html

相关文章:

  • 【建议收藏】PHP单例模式详解以及实际运用
  • 【十二天学java】day04-流程控制语句
  • Pandas 与 PySpark 强强联手,功能与速度齐飞
  • 【Zabbix实战之部署篇】docker部署Zabbix+grafana监控平台
  • acm省赛:高桥和低桥(三种做法:区间计数、树状数组、线段树)
  • stm32-定时器详解
  • 《硬件架构的艺术》读书笔记:Chapter 1 亚稳态的世界
  • 开箱即用的密码框组件
  • ChatGPT能否取代程序员?
  • 案例分享 | 金融微服务场景下如何提升运维可观测性
  • CentOS8提高篇3:Centos8安装播放器(mplayer vlc)
  • MySQL-存储过程
  • 经典七大比较排序算法 · 下 + 附计数和基数排序
  • HTTPS协议,看这篇就够了
  • C语言学习之路--结构体篇
  • 【LINUX】初识文件系统
  • 金三银四Java面试题及答案整理(2023最新版) 持续更新
  • 7个角度,用 ChatGPT 玩转机器学习
  • 关于多层板,你了解多少?
  • 使用sqlalchemy-gbasedbt连接GBase 8s数据库
  • 前端如何丢掉你的饭碗?
  • 栈、队列、优先级队列的模拟实现
  • JMM内存模型
  • Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花
  • 【深度学习】基于Hough变化的答题卡识别(Matlab代码实现)
  • Linux - 进程控制(创建和终止)
  • 依赖注入~
  • 【嵌入式硬件芯片开发笔记】HART协议调制解调芯片AD5700配置流程
  • Go语言异步下载视频
  • 前缀树(字典树/Trie) -----Java实现