[WPF系列]基础学习(一) WPF是什么?
引言
学习之前,我们首先大概了解下WPF诞生的背景以及它所能解决的问题或者新颖之处。WPF作为微软新一代的用户界面技术,
WPF简介
WPF的全称是WindowsPresentationFoundation,是微软新发布的Vista操作系统的三大核心开发库之一,其主要负责的是图形显示, 所以叫Presentation(呈现)。
微软公司早在2003年洛杉矶的PDC上就公布了一个代号为Avalon的项目,他们将其视为下一代用户界面技术,并且得到了开发者和用户的一致赞同。在2005年的PDC上,微软公司展示了比2003年更加完整的Avalon版本,并给它取了一个官方新名称:WindowsPresentationFoundation(WPF),现在WPF已经发展到了4.5版本。
作为新的图形引擎,WPF是基于DirectX的,当然增加了很多新的功能。其2D和3D引擎的强大看看Vista以后的Windows界面就明白了,再加上其对Aero图形引擎的 支持,更加让你刚到神奇。我这里用是window7,效果比起WIndow8以及即将发布的window10还是有差距的。下面的这个Window7中的3D效果大家应该都知道(window+tab)。


WPF有哪些特性
WPF
框架为媒体、用户界面设计和文档提供的解决方案比开发人员现有的解决方案都要好,WPF框架在设计时考虑了可扩展性和可维护性,开发人员能够在WPF中创建自己的控件,还可以通过对现有的WPF控件进行改造创建新的WPF控件。WPF框架是用于形状、图像、视频、动画、文档、三维,以及用于放置控件和内容的面板的一系列控件,这些控件和内容的面板的一系列控件是WPF框架的核心。WPF应用程序提供了若干WPF应用程序开发所需要的控件,开发人员同样能够对控件进行拖放操作实现应用程序布局和开发。作为下一代图形子系统,WPF集成各种输出服务:用户界面、二维和三维图形和图像、基于文档的打印和呈现、语音以及音频和视频服务。通过为所有这些服务提供基于一个框架的托管代码,WPF
使提供新的、丰富的用户体验成为可能,这在以前很难实现。WPF的框架为.NET开发人员所熟悉,最终将减少构建数据绑定应用程序所需的代码。此外,WPF引入新的增强服务(例如动画),同时保留与为GDI/GDI+ 编写的现有代码的互操作性。WPF框架所提供的服务如表所示:

分类显示
| 基本服务 |
XAML, Property System, Input & Eventing , Accessibility |
| 媒体服务 | 2D, 3D, Audio, Video, Text, Imaging, Animation, Effects, Composition Engine |
| 文档服务 | XPS Documents, Open Packaging Conventions |
| 用户界面服务 | Application Services, Deployment, Controls, Layout, Data Binding |
参考:http://www.dotnet-tricks.com/Tutorial/wpf/GHPa021013-Introduction-to-WPF.html
WPF技术展望
随着window系统的更新,相信大家都看到了微软的互联梦正在一步一步实现,微软发布Windows 10系统 采用跨平台设计,而WPF在新版的系统中占有比也越来越多,所以目前来看WPF开发前景相当乐观。虽然现在看起来微软的WPF更新动作不大,但据说是在研发下一代WPF,让我拭目以待。
![]()
总结
本文只是简单介绍了下诞生历史,接着介绍了WPF新颖之处Markup and Code-Behind (展示和代码分离),从而引出了WPF特有的MVVM展示模式。最后简单列举了一些基础或常用MVVM开源框架。
下一篇我们将正式开始学习WPF。
参考文献
Comparison of Architecture presentation patterns MVP(SC),MVP(PV),PM,MVVM and MVC
MVC,MVP and MVVM: A Comparison of Architectural Patterns
Understanding MVC, MVP and MVVM Design Patterns
https://www.slideshare.net/login?from=loggedout_slideview_navbar
http://www.codeproject.com/Articles/140611/WPF-Tutorial-Beginning
[WPF系列]基础学习(一) WPF是什么?的更多相关文章
- WPF系列(1)WPF和XAML基础
终于下定决心开始更新WPF一个系列的文章,这里主要是出于两个目的,一是自己对所学的知识有一个系统的总结,二十希望能对其他人有些帮助,如果您觉得我写的不好,欢迎提意见. 那么既然我要开始写WPF,那我们 ...
- Node.js系列基础学习-----回调函数,异步
Node.js基础学习 Node.js回调函数 Node.js异步编程的直接体现就是回调,异步编程依托回调来实现,但不是异步.回调函数在完成任务后就会被调用,Node有很多的回调函数,其所有的API都 ...
- Node.js系列基础学习----安装,实现Hello World, REPL
Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一 ...
- [WPF系列]基础Combox
示例 参考 WPF combobox SelectedValue binding to string Confused with wpf ComboBox DisplayMemberPath, ...
- [WPF系列]-基础系列 Property Trigger, DataTrigger & EventTrigger
So far, we worked with styles by setting a static value for a specific property. However, using trig ...
- [WPF系列]-基础系列 TabControl应用
引言 Tabcontrol控件也是我们在项目中经常用到的一个控件,用它将相关的信息组织在一起分类显示. 简介 ========================================= ...
- [WPF系列]基础 Listening to Dependency Property change notifications of a given Element
I want to share this great post from Anoop that shows a easy way to add a notification system to dep ...
- [WPF系列]从基础起步学习系列计划
引言 WPF技术已经算不什么新技术,一搜一大把关于WPF基础甚至高级的内容.之前工作中一直使用winform所以一直没有深入学习WPF,这次因项目中使用了WPF技术来实现比较酷的展示界面.我在这里只是 ...
- 【WPF系列】基础学习-XAML
引言 WPF框架中已经提到,WPF框架提供XAML基本服务.WPF中XAML的引入向开发者提供UI设计和代码分离的编程型.XAML是WPF中提出的一个具有重要意义的新技术,基本涉及WPF中所有UI开发 ...
随机推荐
- bzoj1202--带权并查集+前缀和
http://www.lydsy.com/JudgeOnline/problem.php?id=1202 记s[i]=a[1]+a[2]+...+a[i],即s[i]为前缀和.再令v[i]=s[f[i ...
- struts2的action是多例,servlet是单例
struts2中action是多例的,即一个session产生一个action如果是单例的话,若出现两个用户都修改一个对象的属性值,则会因为用户修改时间不同,两个用户访问得到的 属性不一样,操作得出的 ...
- onclick标签变成小手状
style=“cursor: pointer;”
- VMWare 安装 Mac OS X10.10 Yosemite
OS X Yosemite 新功能特性 Mac OS X10.10 GM3|OS X 10.10 Yosemite 正式版下载 如何在虚拟机中安装苹果mac系统图示说明 vm10虚拟机安装Mac OS ...
- 5、ASP.NET MVC入门到精通——NHibernate代码映射
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一 ...
- SQL 常识
1.varchar 与 nvarchar 的区别? varchar(n):长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储大小为输 ...
- AMD and CMD are dead之KMDjs内核之分号
在老版本的kmdjs中,强制了分号的要求.但是总感觉不爽,因为在开发Ket - Kmdjs Extension Tools的时候,总需要导入一些开源的库,然后痛苦就来了,总是报错,一查,就是缺少分号! ...
- SharePoint Framework:下一代开发方式
SharePoint Framework(SPFx),是页面 和Webpart的模型,完全支持本地开发(即完全可以脱离SharPoint环境在本地进行开发),听起来是不是很高级呢,早期SharePoi ...
- SharePoint 2013 入门教程之创建页面布局及页面
在SharePoint的使用过程中,页面布局和页面时很重要的两个概念,主要用于数据个性化展示,下面,我们简单介绍一下SharePoint的页面布局和页面的个性化. 一. SharePoint页面模型概 ...
- ArcGIS API for Silverlight 使用GeometryService求解线与线的交点
///画线 void btn_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { Button btn = sender as B ...