一、目的:簡要姐掃在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個人主頁-嗶哩嗶哩視頻