当前位置: 首页 > 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个人主页-哔哩哔哩视频

相关文章:

  • MYSQL丢失pid处理方式
  • LVGL(lv_tabview)
  • 商品条形码查询接口如何用C#进行调用?
  • 【Harmony OS】组件自定义属性、事件和状态管理
  • 525全国护肤日 国际医学皮肤科助力银龄肌肤科学护肤
  • 用ChatGPT辅助UI设计:从需求分析到风格提案的提效秘籍
  • 16. Git从入门到实践
  • MySQL问题:什么是MySQL的中的最左匹配原则?
  • 钠离子电池循环寿命突破万次
  • ZAB 和 RAFT分别是什么?它们的区别是什么?
  • 振动分析 - 速度谱与加速度谱的转换
  • 08SpringBoot高级--自动化配置
  • 联想小新笔记本电脑静电问题导致无法开机/充电的解决方案
  • 【Vue 3 运行时 Diff 算法深度解析:五步走策略实现高效更新】
  • 3D虚拟工厂
  • DeepSeek 赋能智能安防:从算法革新到场景落地的全解析
  • 【Ubuntu】MySQL配置远程连接
  • OpenCv高阶(十八)——dlib人脸检测与识别
  • Conda:环境移植及更新1--使用conda-pack
  • WEB安全--RCE--webshell HIDS bypass4
  • wordpress网站音乐播放/现在推广引流什么平台比较火
  • 网站建设模块方案/重庆网站排名推广
  • 如何防止别人攻击自己的网站/网络营销策略的内容
  • 电器 东莞网站建设/我的百度网盘登录入口
  • 做网站开发的公司销售/可以搜索国外网站的搜索引擎
  • 律师微网站制作/百度可以发布广告吗