WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框 架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正 做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形 界面。
定义
WPF 为Windows Presentation Foundation的首字母缩写 ,中文译为“Windows呈现基 础”,其原来代号为“Avalon”,因与“我佩服”拼音首字母组合一样,国内有人调侃地称之为 “我佩服”。由 .NET Framework 3.0 开始引入,与 Windows Communication Foundation 及 Windows Workflow Foundation并行为新一代 Windows操作系统以及 WinFX 的三个 重大应用程序开发类库。 WPF是微软新一代图形系统,运行在.NET Framework 3.0及以上版本下,为用户界面、 2D/3D 图形、文档和媒体提供了统一的描述和操作方法。 基于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎 也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。 程序 员在WPF的帮助下,要开发出媲美Mac程序的酷炫界面已不再是遥不可及的奢望。 WPF 相对于Windows客户端的开发来说,向前跨出了巨大的一步,它提供了超丰富的.NET UI 框架,集成了矢量图形,丰富的流动文字支持(flow text support),3D视觉效果和强大无 比的控件模型框架。 Windows Presentation Foundation(以前的代号为“Avalon”)是 Microsoft 用于 Windows 的统一显示子系统,它通过 WinFX 公开。它由显示引擎和托管代码框架组 成。Windows Presentation Foundation 统一了 Windows 创建、显示和操作文档、媒体 和用户界面 (UI) 的方式,使开发人员和设计人员可以创建更好的视觉效果、不同的用户 体验。Windows Presentation Foundation 发布后,Windows XP、Windows Server 2003 和以后所有的 Windows操作系统版本都可以使用它。 WPF是.Net Framework 3.0里新推出的主打功能之一,加上Vista集成.Net Framework 3.0,改写Winform时代,可谓是影响巨大!WPF是一套API函数库,由.Net FrameWork3.0以上版本类库运行。 WPF是Windows操作系统中一次重大变革,与早期的GDI+/GDI不同。WPF是基于 DirectX引擎的,支持GPU硬件加速,在不支持硬件加速时也可以使用软件绘制。高级别 的线程绘制可以提高使用者的体验。自动识别显示器分辨率并进行缩放。而Vista就是一 个非常典型的例子。
特点
程序人员与美工人员明确分工,美工人员可以使用Expression Studio中套装工具可视化 的设计界面。然后交给程序开发组中的XAML就可以。让程序人员直接套用到开发环境, 不需要想页面怎么切了。 对与WPF最重要的特色,矢量图的超强支持。兼容支持2D绘图,比如矩形、自定义路 径,位图等。文字显示的增强,XPS和消锯齿。三维强大的支持。包括3D控件及事件, 与2D及视频合并打造更立体效果。渐变、使用高精确的(ARGB)颜色,支持浮点类型 的像素坐标。这些对GDI+远远不及的。 灵活、易扩展的动画机制!.Net Framework 3.0类库提供了强大的基类,只需继承就可以 实现自定义程序使用绘制。接口设计非常直观,完全面向对象的对象模型。使用对象描 述语言XAML。使用开发工具的可视化编辑。 您可以使用任何一种.Net编程语言(C#,VB NET等开发语言)进行开发。XAML主要针 对界面的可视化控件描述,成生进会分析成.cs或.vb文件,并最后将编译为CLR中间运行 语言。
组成结构
Windows Presentation Foundation 由两个主要部分组成:引擎和编程框架。 1.Windows Presentation Foundation引擎。Windows Presentation Foundation 引擎统 一了开发人员和设计人员体验文档、媒体和 UI 的方式,为基于浏览器的体验、基于窗体 的应用程序、图形、视频、音频和文档提供了一个单一的运行时库。Windows Presentation Foundation 使得应用程序不仅能够充分利用现代计算机中现有的图形硬件 的全部功能,而且能够利用硬件将来的进步。例如,Windows Presentation Foundation 的基于矢量的呈现引擎使应用程序可以灵活地利用高 DPI监视器,而无需开发人员或用 户进行额外的工作。同样,当 Windows Presentation Foundation 检测到支持硬件加速的 视频卡时,它将利用硬件加速功能。 2.Windows Presentation Foundation 框架。Windows Presentation Foundation 框架 为媒体、用户界面设计和文档提供的解决方案远远超过开发人员现在所拥有的。 Windows Presentation Foundation 的设计考虑了可扩展性,使开发人员可以完全在 Windows Presentation Foundation引擎的基础上创建自己的控件,也可以通过对现有 Windows Presentation Foundation 控件进行再分类来创建自己的控件。Windows Presentation Foundation 框架的核心是用于形状、文档、图像、视频、动画、三维以及 用于放置控件和内容的面板的一系列控件。这些“自有控件”为开发下一代用户体验提供了 构造块。 Microsoft 在引入 Windows Presentation Foundation 的同时,还引入了 XAML,这是一 种公开表示 Windows应用程序用户界面的标记语言,可使开发人员和设计人员用来构建 和重用 UI 的工具更加丰富。对于 Web 开发人员,XAML 提供了熟悉的 UI 说明模式。 XAML 还使 UI 设计从基础代码中分离出来,从而使开发人员和设计人员之间的合作更加 紧密。
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp2"
mc:Ignorable="d"
Title="我是测试窗口"
Icon="/Images/1.jpg"
WindowStyle="ThreeDBorderWindow" ResizeMode="CanMinimize"
WindowStartupLocation="CenterScreen"
WindowState="Minimized" Loaded="Window_Loaded"
LocationChanged="Window_LocationChanged">
<Grid>
<Button FontSize="44" Height="600" Width="500">测试按钮</Button>
</Grid>
</Window>