windows表现层基础类库WPF揭密——出自《IT168》

2023-10-25 14:08

本文主要是介绍windows表现层基础类库WPF揭密——出自《IT168》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

WPF会带来什么? 
    Windows表现层基础类库(WPF) ,曾以Avalon为代号,是.net 框架3.0(曾使用代号WinFX)的图形子系统,与XAML密切相关。在微软下一代WINDOWS操作系统 VISTA 中会预装WPFWPF也可安装在Windows XP SP2 Windows Server 2003操作系统。WPF为构建应用系统提供了一致的编程模型,对用户界面和商业逻辑给予清晰地划分。基于WPF的应用程序可以部署在本地系统或者浏览器 平台。WPFwindows应用程序的视觉效果提供了更丰富的控制、设计和开发等方面支持。WPF整合了一系列的应用服务:用户界面、二维和三维绘图、 固定和适应性文档、矢量图形、光栅图形、动画、数据绑定、音频和视频。

    WPF/EWPF的子集,代表“Windows表现层基础类库无处不在的意思WPF/E基于XAMLJavascript技术,构成了WPF移动 版本的核心。WPF/E不提供3D特性,但是包括了XPS(XML文档规范)、矢量绘图和硬件加速等功能。

WPF的主要特性 

   
以下是WPF的主要特性: 
   
图形服务 
    所有的图形(包括桌面的窗口等对象)都将通过Direct3D渲染,旨在提供统一的图形显示通道,以实现高级的图形表现效果。 
    
   
凭借Direct3D渲染图形的好处是,操作系统可以将图形处理任务委托给计算机显示卡上的图形处理芯片,以减轻CPU的负担。
WPF
支持任意比例无损缩放的矢量化图形,支持在2D应用程序中进行3D模型的渲染和交互操作。 
    WPF
除了构建传统的独立运行桌面应用程序,也支持基于XAML技术的浏览器应用(XBAP)。两种类型应用的编程模型很相似。桌面应用程序是可信度最高,采用 ClickOnceMSI等软件安装在本地计算机的应用程序,对计算机资源拥有完全的访问权限。为了保护计算机免受恶意软件的攻击,XBAP应用只能在 一块由系统专门划分的部分信任沙箱内运行,不能访问计算机的全部资源,也不能使用WPF的全部功能。 用户从网页内XBAP类型应用没有安全或安装方面的提示),反之亦然。XBAP应用虽然看起来像是在浏览器内运行,实质上是创建了另一个进程。  

   
互操作性 
    WPF提供了同Win32的互操作性。通过嵌入模式,可以在Win32 代码中使用WPF,也可在WPF中使用Win32 代码。同Windows 窗体的互操作可通过ElementHost类和WindowsFormsHost类来实现。
媒体服务 
    WPF
为二维图形提供了基本几何元素,以及一整套画刷、画笔、几何体和变形等工具。WPF的三维特性局限于Direct3D现有的功能。然而,WPF提供了与用 户界面、文档和媒体介质等的紧密集成。这使得三维界面、三维文档、三维媒体成为可能。    WPF 支持大多数通用图像格式,以及WMV, MPEG and AVI等视频格式。WPF支持时基动画而不是桢动画,从而使动画的播放速度不受系统性能的影响。WPF使用ClearType技术实现文本渲染。 ClearType提供了次像素级定位、自然步幅、纵向反锯齿等特性。WPF同时支持OpenType字体特性。 

   
数据绑定 
    WPF 内置了一系列数据服务,使得开发人员可以在应用程序之间自如地绑定和操纵数据。WPF提供三种数据绑定方式:
 
一次性:客户端忽略服务器端的数据更新的情况n
 
单向性:客户端对服务器端的数据有只读权限的情况n
 
双向性:客户端对服务器端的数据拥有读写权限的情况 n
   
数据绑定不依赖于数据表现。WPF提供数据模板用来控制数据的表现。 

   
用户界面 
    WPF
内置一系列控件:按钮、菜单、列表框等。 
    WPF
提出了一个功能强大的概念:将控件的逻辑层和表现层分离。通过重载控件的模板就可彻底改变其外观。控件可包容任何其它控件,从而通过组合实现无限的控制功能。 

   
图像 

   
开发人员使用WPFWindows图像组件,可以针对特殊的图像文件格式或者特殊的位图效果以及图像元文件进行图像编码。 

   
文字 

    WPF包括了一些GDI中没有提供的文字渲染特性。首次面向开发人员提供了OpenType Windows编程接口,支持OpenTypeTrueTypeTrueType CFF字体。内置了文字阴影和模糊效果,而像反射等其它效果则很容易实现。 

    WPF
对于OpenType的支持包括:
 
连字符:老式的数字(例如:数字的部分比划位于文本基线以下)n
 
变体字n
 
分数n
 
上标和下标n
 
小体大写字母 n
    WPF
提供的其他排版特性还包括行级别对齐、注音字母等。 
    WPF
的文本渲染采用了ClearType技术。ClearType为文本渲染提供了硬件加速功能,可以将预渲染的文本在显示内存中进行缓存,具体的支持范围则 取决于显卡的性能。支持DirectX 10.0的显卡能够将文本字形预先缓存在显示内存内,然后全部在硬件上进行字形组合(将字形按照正确的顺序组合起来,并且填充适宜的空格)、透明混合(反 锯齿应用)、RGB混合(ClearType的次像素级颜色运算)等操作。这意味着只需将每种字体的原始文本字形一次性地保存在显存中(微软估计每种字体 需占2兆显存),其它像在图像和视频上叠加反锯齿文字等操作也不占用CPU的计算资源。支持DirectX 9.0的显卡仅能将透明混合处理过的文本字形缓存在显存区域,从而需要CPU进行字形组合和透明混合等计算,然后将计算结果输送到显卡。缓存这些局部渲染 处理过的字形则需更多的显示内存(微软估计每种字体约需5兆显存)。不支持DirectX 9.0的显卡则不能对文本渲染操作进行硬件加速。 

    WPF
支持动画文字,涉及到的技术包括字形动画,以及实时改变文本的位置、尺寸、颜色和透明度等。

XAML与开发工具 

   
关于XAML 
   
由于标记语言在WEB开发中的成功应用,WPF引进了一种基于XML的全新语言XAML—— “扩展应用标记语言XAML旨在提供更快速开发应用程序用户界面的方式,利用XAML设计者和开发者之间可以更好地协作。 
   
使用XAML开发用户界面可实现模型和视图的分离,这被认为是优秀的软件架构原则。XAML中的每一项元素,映射为底层API的一个类,元素的属性设置为 实例类的属性。WPF中所有的元素都可以使用.NET 语言(C#, VB.net等)编码。XAML代码最终编译成托管程序集。这意味着使用XAML开发不会造成任何性能损失。
PowerPoint
Word等多数应用程序都将支持以XAML格式输出。 

    XAML
有几个子集:
 XAML-P —— XAML
描述,汇集了WPF 1.0所有元素n
 XPS —— XML
文档规范, XAML-P的子集,代表固定格式文档,用于Vista打印子系统的联机文档格式。 n

   
工具 
   
有几个beta版的工具可用于基于WPF应用的开发。
 
微软开发的Cider面向开发人员,作为Visual Studio 2005设计器的一个插件提供。n
 
微软的Expression Interactive Designer面向设计人员,提供了为WPF应用创建二维和三维图形、文本、表单等内容的画布。可将结果以XAML格式输出到其它工具中。n
 
微软的Expression Graphic Designer 用于创建位图和二维图形。n
 Electric Rain ZAM 3D
提供三维模型交互设计工具,以及XAML输出。n
 Mobiform Aurora
可用于创建WPF用户界面。 n

    WPF/E 
    WPF/E
Windows Vista之外的平台提供视频硬件加速、矢量图形、动画等WPF子集特性,是对WPF特性的跨平台扩展。值得一提的是,WPF/E将以插件的方式对 Windows XP Windows 2000Mozilla FirefoxApple SafariLinux以及移动设备等提供支持。这些扩展组件使得浏览器以及其它应用系统充分利用WPF/E强大的图形处理能力。IE 将对WPF提供本地化支持,并对先前的版本提供WPF/E的支持。 
    WPF/E
XAML协同运行,并将在脚本化方面与Javascript互相调用,在以后推出的公共语言运行时版本则可直接执行VB.Net C#代码。

 

 

这篇关于windows表现层基础类库WPF揭密——出自《IT168》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/283083

相关文章

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou

Windows如何添加右键新建菜单

Windows如何添加右键新建菜单 文章目录 Windows如何添加右键新建菜单实验环境缘起以新建`.md`文件为例第一步第二步第三步 总结 实验环境 Windows7 缘起 因为我习惯用 Markdown 格式写文本,每次新建一个.txt后都要手动修改为.md,真的麻烦。如何在右键新建菜单中添加.md选项呢? 网上有很多方法,这些方法我都尝试了,要么太麻烦,要么不凑效

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

c++基础版

c++基础版 Windows环境搭建第一个C++程序c++程序运行原理注释常亮字面常亮符号常亮 变量数据类型整型实型常量类型确定char类型字符串布尔类型 控制台输入随机数产生枚举定义数组数组便利 指针基础野指针空指针指针运算动态内存分配 结构体结构体默认值结构体数组结构体指针结构体指针数组函数无返回值函数和void类型地址传递函数传递数组 引用函数引用传参返回指针的正确写法函数返回数组

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是