WPF 编程入门 --WPF概述

引言

 

WPF英文全称Windows Presentation Foundation(Windows 表现基础),是微软公司在全新.NET Framework 4.5平台上推出的一个图形平台。可以在Window7,8,10主流操作系统上开发出具有炫目效果的应用程序,当然也可以应用比较早的Windows Vista,XP或者是Windows 2003 服务器操作系统上。

概述

WPF是.NET Framework的一个子集,提供了非常多的新的概念和技术,将会改变传统Windows程序员的开发观念和开发方式。

       作为Window系统下的全新的表现层技术。

           <1>WPF完美地整合了矢量图形,2D或3D绘图技术,文件及多媒体技术。

           <2>提供了声明式编程语言XAML将开发人员和设计人员的职责清楚地分离,同时提供了Microsoft Expression设计工具,让设计人员发挥其艺术天分。

 

理解Window图形系统

       无论使用何种开发工具,比如Visual Basic,Delphi,C++等,为了创建Windows用户界面,都会直接或间接地使用到Windows操作系统的以下两大部分。

       I  User32:提供Windows应用程序的组成元素,比如窗口,文本框和按钮等。

       II  GDI/GDI+:提供绘图API,比如绘制图形,文本和图像等。

很多应用程序开发框架中,提供的便利的UI或绘图开发方法都是这两个子系统API的封装,以便降低开发人员调用Win32 API的复杂性,比较有名的是Boland的VCL,微软的MFC等。

      自从Windows 1.0 推出后的二十多年里,这两个Windows图形服务已经越来越稳固。然而随着软件技术的日益发展,传统的图形UI已经越来越难以满足用户对界面的日益增长的需求。而且随着图形硬件以及网络技术的发展,越来越需要有一种全新的图形子系统来提供绚丽的用户界面。随着WPF的出现摆脱了传统图形UI开发的不足,不再基于User32和GDI/GDI+,而是基于微软的DirectX技术。

      在过去的很多年以来,游戏发烧友们都知道DirectX对于游戏的重要性。然而由于DirectX技术的复杂性,以及其与硬件图形卡紧密结合的特性,很少有软件基于DirectX来进行开发。WPF基于DirectX(Direct Extension 多媒体编程接口)技术,同时依赖于User32提供一些其他的服务,比如输入和传递输入等。

WPF的功能特点

   1:基于矢量绘图技术:WPF使用矢量绘图引擎,意味着图形可以无限放大或者缩小。WPF使用的Direct3D进行图形的渲染着色,充分利用显卡的CPU,即图形处理单元。

   2:设备无关单位:这是一个重大的改进,WPF使用1/96的逻辑单位,这使应用程序在不同的分辨率下依然可以保持良好的交互性。

   3:声明式的程序设计:WPF使用了全新的XAML标记语言,进行用户界面设计,配合代码后置文件来开发应用程序。(类似于ASP.NET,一个前端页面和代码后置文件)

  4:Web风格的布局模型:WPF增强了流式布局模型体验,除了使用特定坐标进行固定控件布局以外,还可以使用流式布局来动态地排列用户控件,使用户界面高度动态地适应不同的显示设备,同时更便于创建动态内容

  5:丰富的绘图模型:WPF除了可以处理基本图形,文本块之外,还提供了很多新的绘图特性,比如真正的透明控件,使用不同的透明度堆叠多个控件以及原生的3D支持特性。

  6:原生的多媒体,动画支持:WPF内置动画特性。可以使用XAML标记语言或者借助Blend来设计动画和多媒体视频。

  7:样式和模板特性:类似于ASP.NET中的主题,或者是CSS样式特性,使应用程序可以重用已有的样式设定。模板允许改变任何元素的呈现方式,比如可以通过模板控制Button控件的输出。

  8:基于页面的应用程序:WPF允许开发人员创建浏览器风格的应用程序,让用户使用类似超链接的方式在页面中进行导航。应用程序也可以在Firefox或者是Internet Explorer中运行。

 9:数据驱动程序:以数据为中心,通过绑定将界面永远定位为从属地位。简化了程序中界面逻辑代码的编写。

 10:增加命令模型:在mvvm设计模式中采用命令模式,简化代码逻辑编写。

  11:多线程调度:WPF开始设计的时候就考虑到了多线程的问题,大部分的WPF类都继承于DispatcherObject。

  12:控件的自由性:System.Windows.Controls.ContentControl:这是WPF中一个非常重要的基类。ContentControl是其他内容控件继承自类,用来呈现单块内容。派生自ContentControl的类具有一个Content属性。类型为Object,因此在ContentControl中放置的内容是没有限制的。可以使用XAML标记语言或者代码来设置Content。

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值