WPF 简介
简介
一、 WPF产生的背景
因为人们的生活水平不断提前,审美观也随着提升,而软件的应用发展水平目前无法赶上大家的审美观和使用要求;比如:像电影中的软件能够方便的使用,而且有动态的效果同时附加形象的声音;而且采用GDI/GDI+开发炫一点的产品,成本很高,为了解决此问题,微软推出了一套解决方案WPF;WPF是基于Directx上开发的,使用的图形是矢量图,所以达到分辨率无关;
二、 概念
Windows Presentation Foundation (WPF) 是一种 UI 框架,可创建丰富的交互式客户端应用程序;WPF是.NET Framework的一个子集;
三、 新特征
可扩展标记语言、逻辑树、可视化树、资源、样式、模板、依赖属性、附加属性、命令、绑定、路由事件、附加事件、动画、转换、2D、3D;
四、 WPF优点
1) 降低了开发和维护成本,因为外观特定的标记并没有与行为特定的代码紧密耦合。 --个人理解,体现在换样式及模板上,比如需求要修改某控件显示风格,这时可以避免整套代码(某模块)进行重新开发,只需要动态更换模板或样式;
2) 开发效率更高,因为设计人员可以在开发人员实现应用程序行为的同时实现应用程序的外观。 -- 说是这样说,但是真正开发的时候,都是设计者做出原型图,开发者开发,然后设计者再进行美化,目前还未达到这个水平;
3) 多种设计和开发工具支持XAML -- 体现在设计者(图形界面设计者)和开发者(代码逻辑实现者)能够使用自己擅长开发工具,比如设计者习惯用Blend,而开发者习惯用VS2012,从而提高开发效率;
4) WPF 应用程序的全球化和本地化得以大大简化 -- 目前对全球化、本地化没有太多接触,不发表意见;
5) 加入了DirectX,图像处理能力强;
五、 WPF缺点
WPF性能开销大,特别是加入特效的程序(如果写得不好,很占系统资源);
注:经常有朋友问我WPF是什么,他跟C#有什么关系?,甚至会问WPF跟C#哪个好?
1) WPF是一个UI框架,C#是微软的一种语言,WPF主要是用于界面开发;
2) WPF采用XAML(可扩展应用程序标记语言)来描述界面布局及呈现,采用C#语言(VB)来实现WPF框架的逻辑处理;
3) WPF跟C#没有直接的关系,他们是不同层面的东西,不能用来对比,如果非要用来对比,可以拿WPF跟WinForms进行对比;WPF比WinForms多了很多新特性,而且开发和维护(扩展)更方便、更有效率,WPF的呈现(底层渲染)跟WinForms不一样;WPF是跟分辨率无关,但WPF的性能开销比WinForms要大【我们可以写一个简单WPF和WinForms进行对比】;
WPF 简介的更多相关文章
- WPF简介:VS创建桌面应用程序
1.简介 1/ 什么是WPF WPF,Windows Presentation Foundation也,译过来就是"Windows呈现基础",你看它的目的非常明确,就是用来把数据& ...
- MFC,QT与WinForm,WPF简介
编程语言的组成编程语言做为一种语言自然和英语这些自然语言有类似的地方.学英语时我们知道要先记26个字母,然后单词及其发音,接下来就是词组,句子.反正简单的说就是记单词,熟悉词法,句法.接下来就是应用了 ...
- [WPF系列]基础学习(一) WPF是什么?
引言 学习之前,我们首先大概了解下WPF诞生的背景以及它所能解决的问题或者新颖之处.WPF作为微软新一代的用户界面技术, WPF简介 WPF的全称是WindowsPresentationFound ...
- WPF编程-WPF体系结构
WPF简介 Windows Presentation Foundation(WPF)是微软新一代图形系统,运行在.NET Framework 3.0架构下,为用户界面.2D/3D 图形.文档和媒体提供 ...
- WPF教程一:基础
一.WPF简介WPF:WPF即Windows Presentation Foundation,翻译为中文“Windows呈现基础”,是微软推出的基于Windows Vista的用户界面框架,属于.NE ...
- C#用户自定义控件(含源代码)-透明文本框
using System; using System.Collections; using System.ComponentModel; using System.Drawing; using Sys ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- WPF三大模板简介(Z)
WPF三大模板简介 WPF支持以下类型的模板: (1) 控件模板.控件模板可以将自定义模板应用到某一特定类型的所有控件,或是控件的某一实例.决定控件外观的是ControlTemplate,它决定了 ...
- WPF Binding值转换器ValueConverter使用简介(二)-IMultiValueConverter
注: 需要继承IMultiValueConverter接口,接口使用和IValueConverter逻辑相同. 一.MultiBinding+Converter 多值绑定及多值转换实例 当纵向流量大于 ...
随机推荐
- android-HttpClient上传信息(包括图片)到服务端
需要下载apache公司下的HttpComponents项目下的HTTPCLIENT ----------地址为http://hc.apache.org/downloads.cgi 主要是用到了htt ...
- Mybatis配置中遇到的问题和问题分析
1.为什么这么配置,这个配置主要是作用是什么,主要的是针对什么 mybatis之xml映射配置 sql语句当中 Example_Where_Clause 这个仅仅是一段sql语句吗? <trim ...
- jquery ajax的async属性的理解
$(function(){ queryTemplateSort(); // fillAddTemplatePage(); function queryTemplateSort() { $.ajax({ ...
- SOCKSify Ruby
http://socksify.rubyforge.org/ What is it? SOCKSify Ruby redirects any TCP connection initiated by a ...
- JOIN_TAB
typedef struct st_join_table { st_join_table() {} /* Remove gcc warning */ TABLE *table; KEYUSE *key ...
- git大文件管理
由于git在每一个commit时都会变动过的文件全部保存(不像其他的系统,只做文件增量存储),外加未变动文件的引用,这样如果在文件系统中有一些大的二进制文件,比如图片,视频,那么很快你的repo就将变 ...
- 如何将开源项目部分代码作为private放在github上?
很多时候,你的一些项目本身都是开源的,但是基于该开源项目,你可能做了部分更有价值的工作,或者由于其他原因,你不希望将这部分代码放到public上,那么有以下简单方法: 1. 创建一个private b ...
- Qt之QHeaderView自定义排序(QSortFilterProxyModel)
简述 对以上节的排序,我们衍伸了两点: 把一个字符串前面的数据按照字符串比较,而后面的数据按照整形比较. 将整形显示为字符串,而排序依然正常呢. 为了分别描述,这里我们先解决问题1. 简述 效果 处理 ...
- Qt之命令行编译(nmake)
简述 前两节讲解了如何在Visual Studio和Qt Creator中搭建Qt开发环境,并分享了我们第一个小程序-Hello World. 下面分享如何使用命令行来编译Qt程序.当然,MSVC和M ...
- php扩展编译(以memcached为例)
1)到 https://pecl.php.net/ 上搜索并下载(wget)你需要的扩展的源码包 2)解压并切换进入扩展包的目录 3)使用phpize工具自动生成 configure 4)config ...