当前位置: 首页 > article >正文

笔记: 在WPF中ContentElement 和 UIElement 的主要区别

一、目的:简要姐扫在WPF中ContentElement 和 UIElement 的主要区别

ContentElement 和 UIElement 是 WPF 中的两个基类,它们在功能和用途上有显著的区别。


二、主要区别

ContentElement

主要特点:


•    没有视觉表示: ContentElement 本身不直接渲染任何内容。它的主要作用是作为内容的逻辑容器。
•    输入和焦点支持: ContentElement 提供了对输入事件(如键盘和鼠标事件)和焦点管理的支持。
•    事件处理: ContentElement 支持路由事件,可以处理和响应各种用户交互事件。
•    继承自 DependencyObject: ContentElement 继承自 DependencyObject,因此可以使用依赖属性和数据绑定

常见的派生类:


•    Run: 表示内联文本内容。
•    Paragraph: 表示一个段落。
•    Span: 表示内联内容的容器。
 

UIElement


主要特点:


•    视觉表示: UIElement 继承自 Visual,并添加了布局、输入、焦点、事件处理和命令支持。它可以直接渲染内容。
•    布局支持: UIElement 提供了布局系统的支持,包括测量和排列子元素。
•    输入和焦点支持: UIElement 提供了对输入事件(如键盘和鼠标事件)和焦点管理的支持。
•    事件处理: UIElement 支持路由事件,可以处理和响应各种用户交互事件。


常见的派生类:


•    Button: 表示一个按钮控件。
•    TextBox: 表示一个文本输入控件。
•    Canvas: 表示一个用于自由布局的容器。
 

三、区别总结


•    视觉表示:
•    ContentElement 没有视觉表示,主要用于逻辑内容。
•    UIElement 有视觉表示,可以直接渲染内容。


•    布局支持:
•    ContentElement 不支持布局。
•    UIElement 支持布局系统,包括测量和排列子元素。


•    输入和焦点支持:
•    两者都支持输入事件和焦点管理。


•    事件处理:
•    两者都支持路由事件,可以处理和响应各种用户交互事件。

需要了解的知识点 

ContentElement 类 (System.Windows) | Microsoft Learn

UIElement 类 (System.Windows) | Microsoft Learn

System.Windows.Controls 命名空间 | Microsoft Learn

控件库 - WPF .NET Framework | Microsoft Learn

WPF 介绍 | Microsoft Learn

XAML概述 - WPF .NET | Microsoft Learn

Windows Presentation Foundation 简介 - WPF .NET | Microsoft Learn

使用 Visual Studio 创建新应用教程 - WPF .NET | Microsoft Learn

了解更多

适用于 .NET 8 的 WPF 的新增功能 - WPF .NET | Microsoft Learn

适用于 .NET 7 的 WPF 的新增功能 - WPF .NET | Microsoft Learn

System.Windows.Controls 命名空间 | Microsoft Learn

Reference Source

Sysinternals - Sysinternals | Microsoft Learn

Windows app development documentation - Windows apps | Microsoft Learn

欢迎使用 Expression Blend | Microsoft Learn

https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/?view=netdesktop-7.0&WT.mc_id=MVP_380318

https://github.com/HeBianGu

HeBianGu的个人空间-HeBianGu个人主页-哔哩哔哩视频

http://www.lryc.cn/news/2393303.html

相关文章:

  • 项目中使用到了多个UI组件库,也使用了Tailwindcss,如何确保新开发的组件样式隔离?
  • AI提示工程(Prompt Engineering)高级技巧详解
  • 【速写】PPOTrainer样例与错误思考(少量DAPO)
  • 5.26 面经整理 360共有云 golang
  • 中国移动咪咕助力第五届全国人工智能大赛“AI+数智创新”专项赛道开展
  • 模具制造业数字化转型:精密模塑,以数字之力铸就制造基石
  • PECVD 生成 SiO₂ 的反应方程式
  • React与Vue核心区别对比
  • 2024 CKA模拟系统制作 | Step-By-Step | 17、题目搭建-排查故障节点
  • 如何将图像插入 PDF:最佳工具比较
  • Linux 文件 IO 性能监控与分析指南
  • ABP VNext + Apache Flink 实时流计算:打造高可用“交易风控”系统
  • 前端面试题-HTML篇
  • JS数组 concat() 与扩展运算符的深度解析与最佳实践
  • 人工智能与机器学习从理论、技术与实践的多维对比
  • Netty 实战篇:手写一个轻量级 RPC 框架原型
  • 什么是 WPF 技术?什么是 WPF 样式?下载、安装、配置、基本语法简介教程
  • 亚远景-ISO 21434标准:汽车网络安全实践的落地指南
  • 【动手学深度学习】2.4. 微积分
  • 流程自动化引擎:让业务自己奔跑
  • AI炼丹日志-23 - MCP 自动操作 自动进行联网检索 扩展MCP能力
  • 用 Python 模拟雪花飘落效果
  • 基于定制开发开源AI智能名片S2B2C商城小程序的大零售渗透策略研究
  • 重拾Scrapy框架
  • Day 40
  • XPlifeapp:高效打印,便捷生活
  • 等保测评-Mysql数据库测评篇
  • CSS篇-2
  • 02.K8S核心概念
  • 一套qt c++的串口通信