• WPF概述(硬件加速及分辨率无关性)


    一、名词解释

     

    WPF(Windows Presentation Foundation),直译为Windows表示基础,是专门用来编写程序表示层的技术和工具。

     

    大部分程序都是多层架构的,一般至少包含三层:

    数据层:用于存储数据,多由数据库构成。

    业务逻辑层:用于编写现实的业务逻辑。

    表示层:负责把数据和流程以界面显示的形式展示给用户看。

    相比其他技术,WPF引入了“内置硬件加速”和“分辨率无关”等创新功能。

     

    二、硬件加速

     

    WPF通过DirectX执行所有WPF绘图操作,以便充分利用现代显卡的最新功能。

     

    在WPF问世之前,传统的Windows应用程序都依靠如下两部分来创建用户界面:

    User32:该部分为许多元素(如窗口、按钮和文本框等)提供了熟悉的Windows外观

    GDI/GDI+:该部分为渲染简单形状、文本以及图像提供了绘图支持,但增加了复杂程度(而且通常性能较差)。

     

    后针对User32和GDI/GDI+的限制发行了 DirectX 技术,起初用于开发游戏,注重速度,由显卡支持,可以实现复杂的纹理映射、特殊效果(如半透明)以及三位图形所需的硬件加速功能。

    WPF应用程序在底层都是使用DirectX,因此具有两大优势:①可使用丰富的效果②显卡硬件加速

     

    三、分辨率无关性

     

    传统Windows应用程序的用户界面,是不可伸缩的。如果使用更高的显示器分辨率,将会更紧凑地排列像素,应用程序窗口将变得更小并更难以阅读。即图像包含的像素数不变(精细程度不变),但图像大小会变。

    而在WPF中,高分辨率显示器可显示相同大小的工具栏图标,但使用更多像素显示更清晰的图形,WPF会确保任何显示内容都能自动地具有正确的尺寸。即图像大小不变,图像包含的像素数会变(精细程度会变)。例如,如果在计算机显示器上创建一个1英寸宽的按钮,在更高分辨率的显示器上它仍能保持1英寸的宽度——WPF只是使用更多像素更详细地渲染这个按钮罢了。

     

    下面介绍两种单位:

    dpi(dot per inch,每英寸像素点数)。例如,一个最大分辨率为1600×1200像素的19英寸显示器,可用勾股定理算出其像素密度:

    [屏幕DPI] = √16002+12002像素 / 19英寸 =100 dpi

    WPF使用与设备无关的单位进行度量,一个与设备无关的单位被定义为1/96英寸,每个设备无关单位对应一个物理像素,转换关系如下:

    [物理单位尺寸] = [设备无关单位尺寸]×[系统DPI] = 1/96英寸×100dpi = 1.04像素

     

    下面介绍两种图:

    位图,也称为点阵图像,使用我们称为像素的一格一格的小点来描述图像,因此缩放或旋转位图时会出现马赛克模糊或边缘锯齿状的现象。占用空间大。常见格式:*.bmp、*.pcx、*.gif、*.jpg、*.tif、*.png、photoshop的*.psd等。

    矢量图,被定义为一系列的形状(点、线、面等构成),能够很容易地缩放为任何尺寸,而清晰度不变。占用空间小。常见格式:AdobeIllustrator的*.AI、*.EPS、*.SVG,AutoCAD的*.dwg、*.dxf,Corel DRAW的*.cdr等。

    WPF中,最好使用矢量图。

     

     

     

    本博文性质为读书笔记,并非纯原创,所参考和引用的书籍如下,特此注明。如转载,也请注明出处。

    《WPF编程宝典——使用C# 2012和.NET 4.5(第四版)》,英文书名为《Pro WPF in C# 2012: Windows Presentation Foundation in .NET 4.5》。

  • 相关阅读:
    系统进程查看 --- 微软官方出品
    Chrome 浏览器网页保存为PDF文件
    Chrome Google浏览器下载
    最强Android书 架构大剖析 作者网站
    腾讯暑期夏令营之旅
    轨迹记录App是怎样对定位轨迹进行过滤、优化和平滑处理的
    android-8~23 View.java
    android-23 View.java
    The server encountered an internal error that prevented it from fulfilling this request.
    Android Event
  • 原文地址:https://www.cnblogs.com/zwh1993/p/10232094.html
Copyright © 2020-2023  润新知