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

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.kler.cn/a/2087.html

相关文章:

  • SpringBoot+Vue3实现阿里云视频点播 实现教育网站 在上面上传对应的视频,用户开会员以后才能查看视频
  • uniapp新建项目hello,什么都没干提示应用未关联服务空间,请在uniCloud目录右键关联服务空间
  • 前端yarn工具打包时网络连接问题排查与解决
  • C 数组:索引魔杖点化的数据星图阵列
  • Git实用指南(精简版)
  • BPMN与一般的流程图区别在那里?
  • Mybatis的多表操作
  • unity3d游戏运行时lua热重载
  • Kaggle实战入门:泰坦尼克号生还预测(进阶版)
  • Qt cmake 资源文件的加载
  • LeetCode:27. 移除元素
  • ini配置文件
  • Boosting(XGBoost、LightGBM以及CatBoost)
  • 栈、队列、优先级队列的模拟实现
  • 【计算机组成原理】:计算机系统概述
  • 鸟哥的Linux私房菜 Shell脚本
  • 【Leetcode】队列实现栈和栈实现队列
  • 【三维几何学习】从零开始网格上的深度学习-3:Transformer篇(Pytorch)
  • 【Zabbix实战之部署篇】docker部署Zabbix+grafana监控平台
  • 【C++初阶】四、类和对象(下)
  • 沁恒CH32V307使用记录:使用TIM输出PWM信号
  • C++笔记——第六篇 list的简介和使用
  • 多线程 (六) 单例模式
  • 蓝桥杯备赛经验 pythonA组(非科班选手)
  • 拯救会议纪要!快用这三个音频转文字方法,让领导对你刮目相看
  • FLEXPART拉格朗日粒子扩散模式建模技术及研究大气污染物源-汇关系中的实践经验