(一)WPF - WPF

这篇具有很好参考价值的文章主要介绍了(一)WPF - WPF。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Window 图形演化

创建用户界面:

  • User32: 该部分为许多元素(如窗口、按钮和文本框等)提供了熟悉的 Windows 外观。
  • GDI/GDI+: 该部分为渲染简单形状、文本以及图像提供了绘图支持,但增加了复杂程度(而且通常性能较差)。

不同框架工具(如.NET、MFC)只是为与 User32 和 GDI/GDI+ 进行交互提供了不同的封装器而已,底层都是使用 Windows 操作系统的相同部分分来工作的。

DirectX:新的图形引擎

特点: 提供复杂的纹理映射、特殊效果(如半透明)以及三维图形所需的硬件加速功能。
DirectX 曾主要作为游戏开发人员的工具包,现 WPF 应用程序在底层都是使用DirectX。

二、WPF 体系结构

(一)WPF - WPF

图1-2中包含的一些重要组件:

  • PresentationFramework.dll 包含 WPF 顶层的类型,包括那些表示窗口、面板以及其他类型控件的类型。它还实现了高层编程抽象,如样式。开发人员直接使用的大部分类都来自这个程序集。

  • PresentationCore.dll 包含了基础类型,如 UIElement 类和 Visual 类,所有形状类和控件类都继承自这两个类。如果不需要窗口和控件抽象层的全部特征,可使用这一层,而且仍能利用 WOF 的渲染引擎。

  • WindowBase.dll 包含了更多基本要素,这些要素具有在 WPF 之外重用的潜能,如DispatcherObject 类和 DependencyObject 类,这两个类引入了依赖项属性。

  • milcore.dll 是 WPF 渲染系统的核心,也是媒体集成层(MIL)的基础。其合成引擎将可视化元素转换为 Direct3D 所期望的三角形和纹理。尽管将milcore.dll 视为 WPF 的一部分,但它也是 Windows Vista 和 Windows 7 的核心系统组件之一。实际上,桌面窗口管理器(DWM)使用 milcore.dll 渲染桌面。

  • WindowCodecs.dll 是一套提供图像支持的低级 API(例如处理、显示以及缩放位图和 IPEG 图像)。

  • Direct3D 是一套低级 API, WPF 应用程序中的所有图形都由它进行渲染。

  • User32 用于决定哪些程序实际占有桌面的那一部分。所以它仍被包含在 WPF 中,但不再负责渲染通用控件。

三、类层次结构

(一)WPF - WPF

1.System.Threading.DispatcherObject 类
单线程亲和模(Single-Thread Affinity,STA)模型,整个用户界面由单个线程拥有。从另一个线程与用户界面元素进行交互是不安全的。为方便使用此模型,每个 WPF 应用程序由协调消息(键盘输入、鼠标移动仍至框架处理,如布局)的调度程序管理。通过继承自 DispatcherObject 类,用户界面中的每个元素都可以检查代码是否在正确的线程上运行,并能通过访问调度程序为用户界面线程封送代码。

2.System.Windows.DependencyObject 类
在 WPF 中,主要通过属性与屏幕上的元素进行交互。在早期设计阶段,WPF 的设计者决定创建一个更加强大的属性模型。该模型支持许多特性,例如更改通知、默认值继承以及减少属性存储空间。最终结果就是依赖项属性特性。

3.System.Windows.Media.Visual 类
在 WPF 窗口中显示的每个元素本质上都是 Visual 对象。可将 Visual 类视为绘图对象,其中封装了绘图指令、如何执行绘图的附加细节(如剪裁、透明度以及变换设置)以及基本功能(如命中测试)。Visual 类还在托管的 WPF 库和渲染桌面的 milcore.dll 程序集之间提供链接。任何继承自 Viusal 的类都能在窗口上显示出来。如果更愿意使用轻量级的 API 创建用户界面,而不想使用 WPF 的高级框架特征。

4.System.Windows.UIElement类
UIElement 类增加了对 WPF 本质特征的支持,如布局、输入、焦点和事件。

5.System.Windows.FrameworkElement 类
FramworkElement 类是 WPF 核心继承树中的最后一站。该类实现了一些全部由 UIElement 类定义的成员。例如,UIElement 类为 WPF 布局系统设置了基础,但 FrameworkElement 类提供了支持它的重要属性(如 HorizontalAlignment 和 Margin 属性)。UIElement 类还添加了对数据绑定、动画以及样式等核心特性的支持。

6.System.Windows.Shapes.Shape 类
基本的形状类(如 Rectangle 类、Polygon 类、Ellipse 类、Line 类以及 Path 类)都继承自该类。可将这些形状类与更传统的 Windows 小组件(如按钮和文本框)结合使用。

7.System.Windows.COntorls.Control 类
控件(control)是可与用户进行交互的元素。控件显然包括 TextBox 类、Botton 类和 ListBox 类等。Control 类为设置字体以及前景色与背景色提供了附加属性。

8.System.Windows.Controls.ContentControl 类
ContenControl 类是所有具有单一内容的控件的基类,包括简单的标签乃至窗口的所有内容。该模型给人印象最深刻的部分是:控件中的单一内容可以是普通字符串乃至具有其他形状和控件组合的布局面板。

9.System.Windows.Controls.ItemsControl 类
ItemsControl 类是所有显示选项集合的控件的基类,如 ListBox 和 TreeView 控件。列表控件十分灵活。例如,使用 ItemsControl 类的内置特征,可将简单的 ListBox 控件变换成单选按钮列表、复选框控件列表、平铺的图像或是您所选择的完全不同的元素的组合。实际上。WPF 中的菜单、工具栏以及状态栏都是特定的列表,并且实现它们的类都继承自 ItemsControl 类。

10.System.Windows.Controls.Panel 类
Panel 类是所有布局容器的基类,布局容器是可包含一个或多个子元素、并按特定规则对子元素进行排列的元素。文章来源地址https://www.toymoban.com/news/detail-498031.html

到了这里,关于(一)WPF - WPF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java | GUI 图形用户界面

            GUI 全称 Graphical User Interface 图形用户界面 ,指采用图形方式显示的计算机操作用户界面。 软件以图形界面形式运行时,用户可借助于菜单、按钮、标签等组件和通过鼠标、键盘等的操作共同完成对软件的应用。         当程序运行后,出现的图形窗口,称为

    2024年02月08日
    浏览(45)
  • Java——GUI(图形用户界面)

    1、掌握布局管理器、AWT事件处理机制以及常用事件 2、熟悉Swing组件的使用 3、了解GUI开发的相关原理和技巧 GUI全称是GraphicalUser Interface,即图形用户界面。顾名思义,就是应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其他各种图形界面元素。目前,

    2024年02月09日
    浏览(41)
  • 快速上手Opencv:HighGUI图形用户界面

    1.1 图像的载入:imread()函数 Mat imread(const string filename,int flags=1) 第一个参数:图片路径 第二个参数:载入标识,指定一个加载图像的颜色类型。可以看到它自带的默认值为1 1.2 图像的显示:imshow()函数 void imshow(const string winname InputArray mat) 第一个参数:填需要显示的窗口标识名

    2024年02月08日
    浏览(37)
  • Qt用户图形界面设计应用(闹钟)

    什么是Qt Qt 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech 公司于 1995 年底出品,并于 2008年6月17日被NOKIA公司收购,以增强NOKIA公司在跨平 台软件研发方面的实力,更名为Qt Software。 Qt的优点 基本上, Qt 同 X Window 上的 Motif, Openwin, GTK 等图形界 面库 和 Windows 平台上的

    2024年02月08日
    浏览(57)
  • 如何使用Java实现图形用户界面(GUI)?

    随着计算机技术的不断发展,图形用户界面(GUI)成为现代软件开发的一个重要方面。通过使用GUI,开发人员可以创建具有可视化界面的应用程序,以提供更好的用户体验。在本文中,我们将介绍如何使用Java实现GUI。 Java提供了多个GUI库,包括Swing、JavaFX和AWT。其中,Swing和

    2024年02月04日
    浏览(40)
  • Python 图形用户界面(GUI)框架有哪些

    Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。轻量级的跨平台图形用户界面(GUI)开发工具。 由于 Tkinter 是内置到 python 的安装包中 、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是

    2024年02月08日
    浏览(53)
  • MATLAB 之 可视化图形用户界面设计

    MATLAB 提供了图形用户界面开发环境(Graphical User Interface Development Environment,GUIDE),在这种开发环境下,用户界面设计变得方便、直观,实现了 “所见即所得” 的可视化设计。 1.1 图形用户界面设计模板 在 MATLAB 命令行窗口输入 guide 命令,或在 MATLAB 主窗口中选择 “主页”

    2024年02月11日
    浏览(42)
  • 探索PySimpleGUI:一款简洁易用的图形用户界面库

    目录 PySimpleGUI 安装使用 代码框架 常用控件 Text Input Button 布局方法 事件循环 示例代码 调试窗口 主题 theme Listbox控件 简单实例 小结 PySimpleGUI是一个基于Tkinter、WxPython、Qt等底层库构建的图形界面框架,其设计目标是使Python GUI编程变得更加简单直观,大大降低了入门门槛。无

    2024年01月18日
    浏览(43)
  • 如何设计和构建一个PyQt图形用户界面(GUI)

    欢迎来到PyQt的世界!设计和构建一个图形用户界面(GUI)可以是一项令人兴奋且有趣的任务。 首先,你需要确保已经安装了PyQt。如果你还没有安装,可以通过以下命令在你的Python环境中安装: 现在,让我们开始设计你的第一个PyQt GUI! 第一步:创建窗口 想象一下,如果你

    2024年02月12日
    浏览(40)
  • PyQT5: 构建图形用户界面的Python指南

    PyQt5是一个Python绑定的跨平台C++库,用于创建丰富的图形用户界面(GUI)。它是Qt库的Python接口,Qt库由Qt公司开发,用于开发GUI程序,也称作应用程序框架。在此,我们将详细介绍如何使用PyQt5创建图形用户界面。 在开始之前,我们需要确保已经在Python环境中安装了PyQt5。如果

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包