WPF概述

Windows Presentation Foundation

        该技术是基于Windows的图形显示系统,在.NET Framework 3.0的时候发布,第一个版本叫WPF 3.0。

        有两个突出的创新功能:内置硬件加速、分辨率无关

1.Windows的图形界面技术

        远古时期,Windows应用程序所用的技术有两个

                User32:Windows外观元素(窗口、按钮、文本框等)

                GDI/GDI+:渲染绘制简单图形图像及文本,复杂程度高且通常情况下性能较差。

        后来,微软推出了DirextX图形引擎。通过硬件加速,将渲染绘制图形等复杂的操作交给GPU。 WPF的所有绘图操作都是由DirectX完成的,同时WPF仍在部分特定服务中依赖于User32。

WPF的硬件加速:

        WPF工作的过程中包含硬件优化方式和软件计算方式,优先采用硬件优化方式,在硬件性能不佳时,也会有软件计算的方式加入。

        简单来说就是吃显卡配置,也有对低配硬件使用时的程序优化。

2.WPF高级API的优点

  •         类Web的灵活布局方式
  •         高可复用的样式和模版
  •         不再逐像素绘制的高效文本和绘图,支持3D图形
  •         不再用计时器的流畅动画
  •         音/视频可以添加特效并灵活集成
  •         可进行代码抽象的命令,将代码逻辑链接到多个控件上
  •         声明式UI,可实现前后端分离
  •         可C/S,也可B/S,可部署到浏览器中使用

 3.分辨率无关性

         WPF根据系统dpi进行缩放,与物理显示设备无关。

        dpi-dot per inch 每英寸像素点数

 4.WPF体系结构

应用程序工作时的层次结构

PresentationFramework.dll托管的WPF API--顶层
PresentationCore.dll
WindowsBase.dll
milcore.dll媒体集成层 Media Integration Layer,MIL
WindowsCodecs.dll
Direct3D低级底层API
User32

类层次结构

 WPF的核心命名空间都是以System.Windows开头的,System.Windows.Forms例外(属于Winform)

System.Threading.DispatcherObject

WPF是单线程亲和模型(STA Single-Thread Affinity),单线程拥有且不可与其他线程交互,由协调消息(键盘鼠标操作或框架和布局的处理)的调度程序管理。

继承自此类,可以保证代码在正确的线程运行且能通过访问调度程序为用户界面线程封送代码。

System.Windows.DependencyObject

依赖项属性,屏幕上元素交互的途径,支持更改通知、默认值继承、减少属性存储空间等

System.Windows.Media.Visual

页面显示的所有元素都继承自此类,封装了绘图指令,在WPF托管库和milcore.dll之间提供了链接。如果要更简,可以直接对Visual对象进行编程。

System.Windows.UIElement

提供对布局、输入、焦点和事件的支持,鼠标和按键的操作在这里被转换成路由事件。

System.Windows.FrameworkElement

WPF核心继承树的最后一站,实现了一些全部由UIElement类定义的成员。提供了布局的基础,如HorizontalAlignment、Margin等,还有数据绑定、动画、样式等一系列内容。

System.Windows.Shapes.Shape

基本形状类,子类有Rectangle、Polygon等

System.Windows.Controls.Control

可进行交互的元素,包括但不限于Button、TextBox等。为设置字体和前景色、背景色提供了附加属性,支持模板-用以自定义绘图替换标准外观。

System.Windows.Controls.ContentControl

所有具有单一内容的控件的基类

System.Windows.Controls.ItemsControl

所有显示选项集合的控件的基类。如ListBox、TreeView等

列表控件们的爹。

System.Windows.Controls.Panel

所有布局容器的基类,是布局系统的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值