C# WPF编程-概述

C# WPF编程-基础知识

概述

WPF(Windows Presentation Foundation)是用于Windows的现代图形显示系统。引入了"内置硬件加速"和"分辨率无关"等创新功能。

WPF高级API

  • 类似Web的布局模型。
  • 丰富的绘图模型。
  • 丰富的文本模型。
  • 作为首要编程概念的动画。
  • 支持音频和视频媒体。
  • 样式和模版。
  • 命令。
  • 声明式用户界面。
  • 基于页面的应用程序。

硬件加速与WPF

显卡在支持特定渲染特性和优化方面是有区别的。大多数计算机显卡硬件可以支持3D绘图和动画等WPF功能。

分辨率无关性

WPF根据系统DPI设置进行缩放,并不根据物理显示设备的DPI进行缩放。

WPF窗口以及其中的所有元素都是使用与设备无关的单位进行度量。定义为1/96英寸。

WPF体系结构

WPF使用多层体系结构。

  • PresentationFramework.dll包含WPF顶层的类型,包括表示窗口,面板以及其他类型控件的类型。
  • PresentationCore.dll包含了基础类型,如UIElement类和Visual类,所有形状类和控件类都继承自者两个类。
  • WindowsBase.dll包含了更多基本要素,如DispatcherObject类和DependencyObject类。
  • milcore.dll是WPF渲染系统的核心。
  • WindowsCodecs.dll是一套提供图像支持的低级API(如处理,显示及缩放位图和JPEG图像)。
  • Direct3D是一套低级API,WPF应用程序中的所有图形都有它进行渲染。
  • User32用于决定哪些程序实际占有桌面的哪一部分。

WPF的主要类

注意:WPF核心名称空间以System.Windows开头。唯一例外是由System.Windows.Forms开头的名称空间,他们是Windows窗体工具包的一部分。

  1. System.Threading.DispatcherObject类:
    WPF应用程序使用单线程亲和(Single-Thread Affinity,STA)模型,这意味着整个用户界面由单个线程拥有。每个WPF应用程序有协调消息的调度程序管理。通过继承自DispatcherObject类,用户界面中的每个元素都可以检查代码是否正确的线程上运行,并能通过访问调度程序为用户界面线程封送代码。
  2. System.Windows.DependencyObject类:
    在WPF中,主要通过属性与屏幕上的元素进行交互。最终结果是依赖项属性(dependency porperty)特性,通过继承自DependencyObject类,WPF类可获得对依赖项属性的支持。
  3. System.Windows.Media.Visual类:
    在WPF窗口中显示的每个元素本质上都是Visual对象。可将Visual类视为绘图对象,其中封装了绘图指令,如何执行绘图的附件细节以及基本功能。
  4. System.Windows.UIElement类:
    UIElement类增加了对WPF本质特征的支持,如布局,输入,焦点和事件等。
  5. System.Windows.FrameworkElement类:
    FrameworkElement类是WPF核心继承树中的最后一站。该类实现了一些全部由UIElement类定义的成员。
  6. System.Windows.Shapes.Shape类:
    基本的形状类(如Rectangle类,Polygon类,Ellipse类,Line类以及Path类)都继承自该类。
  7. System.Windows.Controls.Control类:
    控件(control)是可与用户进行交互的元素。Control类为设置字体以及前景色与背景色提供了附加属性。
  8. System.Windows.Controls.ContentControl类:
    ContentControl类是所有具有单一内容的控件的基类,包括简单的标签乃至窗口的所有内容。
  9. System.Windows.Controls.ItemsControl类:
    ItemsControl类是所有显示选项集合的控件的基类,如ListBox和TreeView控件。
    10.System.Windows.Controls.Panel类:
    Panel类是所有布局容器的基类,布局容器可包含一个或多个子元素,并按特定规则对子元素进行排列的元素。

WPF工具包

WPF工具包提供了一套控件用于创建柱形图,饼图,气泡图,散点图以及线图。

Visual Studio IDE

集成开发环境不断更新版本,目前最新的是Visual Studio 2022。

相关推荐
蜜桃小阿雯39 分钟前
JAVA开源项目 旅游管理系统 计算机毕业设计
java·开发语言·jvm·spring cloud·开源·intellij-idea·旅游
Benaso40 分钟前
Rust 快速入门(一)
开发语言·后端·rust
Sliphades1 小时前
多文件并发多线程MD5工具(相对快速的MD5一批文件),适配自定义MD5 Hash I/O缓存。
c#
wjs20241 小时前
HTML5 新元素
开发语言
慕明翰1 小时前
Springboot集成JSP报 404
java·开发语言·spring boot
satan–01 小时前
R语言的基本语句及基本规则
开发语言·windows·r语言
小码农<^_^>1 小时前
c++继承(下)
开发语言·c++
非著名架构师1 小时前
js混淆的方式方法
开发语言·javascript·ecmascript
Themberfue1 小时前
基础算法之双指针--Java实现(下)--LeetCode题解:有效三角形的个数-查找总价格为目标值的两个商品-三数之和-四数之和
java·开发语言·学习·算法·leetcode·双指针
深山夕照深秋雨mo1 小时前
在Java中操作Redis
java·开发语言·redis