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

笔记: 在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.xdnf.cn/news/669835.html

相关文章:

  • 2025年土建施工员备考考试真题及答案
  • 数据库MySQL学习——day13(索引与查询优化)
  • gcc clang
  • FastMoss 国际电商Tiktok数据分析 JS 逆向 | MD5加密
  • 安全监测预警系统的核心价值
  • Jmeter一些元件使用的详细记录
  • VR 赋能病毒分离鉴定:开启微观探索新视界
  • 微软开源bitnet b1.58大模型,应用效果测评(问答、知识、数学、逻辑、分析)
  • 数据分析实战1(Excel制作报表)
  • 【NLP基础知识系列课程-Tokenizer的前世今生第五课】从静态到可学:Tokenizer 的自适应演化之路
  • LVS负载均衡群集
  • 语音识别算法的性能要求一般是多少
  • Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层
  • 软件同步机制-Peterson解决方案 简单讲解
  • 攻防世界-你猜猜
  • js判断当前设备是否为移动端
  • camera_venc_thread线程获取高分辨率编码码流
  • Vue组件化
  • Rust 学习笔记:关于闭包的练习题
  • Flink系列文章列表
  • 分布式系统中的网络编程
  • wordpress迁移到Hostinger
  • 爬虫入门指南-某专利网站的专利数据查询并存储
  • YOLOv2 深度解析:目标检测领域的进阶之路
  • 【文献阅读】EndoChat: Grounded Multimodal Large Language Model for Endoscopic Surgery
  • 【HW系列】—目录扫描、口令爆破、远程RCE流量特征
  • 攻防世界-ics-07
  • 【Web应用】基础篇04-功能详解-权限控制(创建菜单--分配角色--创建用户)
  • 使用 scikit-learn 库对乌克兰冲突事件数据集进行多维度分类分析
  • ABP VNext + Apache Flink 实时流计算:打造高可用“交易风控”系统