-
深入浅出 WPF教程之二 WPF的主要特性
二 WPF的主要特性
以下是WPF的主要特性:
图形服务
所有的图形(包括桌面的窗口等对象)都将通过Direct3D渲染,旨在提供统一的图形显示通道,以实现高级的图形表现效果。
凭借Direct3D渲染图形的好处是,操作系统可以将图形处理任务委托给计算机显示卡上的图形处理芯片,以减轻CPU的负担。
WPF支持任意比例无损缩放的矢量化图形,支持在2D应用程序中进行3D模型的渲染和交互操作。
WPF 除了构建传统的独立运行桌面应用程序,也支持基于XAML技术的浏览器应用(XBAP)。两种类型应用的编程模型很相似。桌面应用程序是可信度最高,采用 ClickOnce或MSI等软件安装在本地计算机的应用程序,对计算机资源拥有完全的访问权限。为了保护计算机免受恶意软件的攻击,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提出了一个功能强大的概念:将控件的逻辑层和表现层分离。通过重载控件的模板就可彻底改变其外观。控件可包容任何其它控件,从而通过组合实现无限的控制功能。
图像
开发人员使用WPF的Windows图像组件,可以针对特殊的图像文件格式或者特殊的位图效果以及图像元文件进行图像编码。
文字
WPF包括了一些GDI中没有提供的文字渲染特性。首次面向开发人员提供了OpenType 的Windows编程接口,支持OpenType、TrueType和TrueType 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支持动画文字,涉及到的技术包括字形动画,以及实时改变文本的位置、尺寸、颜色和透明度等。
以下是WPF的主要特性:
图形服务
所有的图形(包括桌面的窗口等对象)都将通过Direct3D渲染,旨在提供统一的图形显示通道,以实现高级的图形表现效果。
凭借Direct3D渲染图形的好处是,操作系统可以将图形处理任务委托给计算机显示卡上的图形处理芯片,以减轻CPU的负担。
WPF支持任意比例无损缩放的矢量化图形,支持在2D应用程序中进行3D模型的渲染和交互操作。
WPF 除了构建传统的独立运行桌面应用程序,也支持基于XAML技术的浏览器应用(XBAP)。两种类型应用的编程模型很相似。桌面应用程序是可信度最高,采用 ClickOnce或MSI等软件安装在本地计算机的应用程序,对计算机资源拥有完全的访问权限。为了保护计算机免受恶意软件的攻击,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提出了一个功能强大的概念:将控件的逻辑层和表现层分离。通过重载控件的模板就可彻底改变其外观。控件可包容任何其它控件,从而通过组合实现无限的控制功能。
图像
开发人员使用WPF的Windows图像组件,可以针对特殊的图像文件格式或者特殊的位图效果以及图像元文件进行图像编码。
文字
WPF包括了一些GDI中没有提供的文字渲染特性。首次面向开发人员提供了OpenType 的Windows编程接口,支持OpenType、TrueType和TrueType 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支持动画文字,涉及到的技术包括字形动画,以及实时改变文本的位置、尺寸、颜色和透明度等。
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
JavaScript判断两个数组相等的四类方法
js如何操作video标签
React实战--利用甘特图和看板,强化Paas平
【记录】正则替换的偏方
前端下载 Blob 类型整理
抽象语法树AST必知必会
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程