(1)WPF基础学习

来源:互联网 发布:unity3d做ar 编辑:程序博客网 时间:2024/05/18 02:20

Windows图形基础

Windows系统的两大部分:

  • User32:提供windows应用程序的组成元素,比如窗口,文本框,按钮等。
  • GDI/GDI+:提供绘图API,比如绘制图形、文本与图像等。
  • WCF不再基于User32GDI/GDI+,而是基于微软的DirectX技术。
  1. WPF功能特点
    • 基于矢量绘图技术;
    • 设备无关单位:分辨率无关;
    • 声明式的程序设计:XAML语言;
    • Web风格的布局模式;
    • 丰富的绘图模型
    • 原生的多媒体,动画支持
    • 样式和模板特性
    • 基于页面的应用程序
  1. WPF架构简介:

  • PresentationFramework.dll放置最高层次的WPF类型,比如窗口、面板、及其他类型的控件。
  • PresentationCore.dll存放基本类型,比如UIElementVisual
  • WindowsBase.dll存放WPF外包可能被重用的基本元素,比如DispatcherObjectDependencyObject
  • Milcore.dll: WPF系统输出的核心,也是多媒体整合层的基础。主要用于DirectX交互
  • WindowsCodecs.dll:底层API,用于提供图形图像支持
  • Direct3D:用于提供图像输出的底层API
  • User32:用于决定程序的状态,该服务并不提供输出通用控件的任务,而是作为处理和设置应用程序状态用。
  1. WPF类层次结构

  • System.Threading.DispatcherObject类:WPF使用单线程应用模型(STA)。所以WPF使用派遣者的对象来整理消息,由此产生键盘输入、鼠标移动以及框架处理等。
  • System.Windows.DependencyObjectWPF主要通过属性与界面元素交互。WPF属性是从DependencyObject类型派生,
  • System.Windows.Media.Visual:可以把visual看成一个图像对象,WPF中的呈现的每个元素都是一个可视化对象。这些元素封装了绘图指令,图形如何被绘制的详细信息。比如裁剪,透明度和变换的设置。Visual类也提供了托管WPF APImilcore.dll直接的连接。
  • System.Windows.UIElementUIElement定义了WPF的核心系统,包括布局Layout、输入Input和事件Event、焦点等。
  • System.Windows.FrameworkElement:作为WPF继承层次树的总结点,FrameworkElement实现了UIElement仅定义的成员。比如UIElement设置WPF布局系统的基础,而FrameworkElement则表壳几个关键的属性提供对布局系统的支持。比如HorizontalAlignmentMarginFrameworkElement还引入了2个关键内容:数据绑定和样式。
  • System.Windows.Shapes.Shape:基本形状类
  • System.Windows.Controls.Control:控件
  • System.Windows.Controls.ContentControl:非常重要的基类。ContentControl是其他内容控件的基类,
  • System.Windows.Controls.ItemsControl:集合项控件的基类
  • System.Windows.Controls.Panel:布局容器面板的基类,