笔记: 在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个人主页-哔哩哔哩视频