WPF(控件的继承树、内容控件、布局控件)

发布时间:2026/11/4 1:53:39

WPF(控件的继承树、内容控件、布局控件) 一、wpf控件的继承树二、所有控件共同父类总结这样记除去字体的设置、前景色、背景色、Padding、模板、控件内容的对齐方式、边框是control有的其他的东西所有控件全有。Object是所有 .NET 对象的基类所有控件后台线程都可以通过Dispatcher访问所有控件的几乎所有属性都可以数据驱动更新不懂所有控件都支持鼠标、键盘和触摸事件所有控件都支持设置宽高最小/最大尺寸HorizontalAlignment/VerticalAlignment- 父容器中的对齐方式默认值为StretchStyle- 样式DataContext- 数据上下文Resources-资源ContextMenu属性设置与获取控件的上下文菜单 就是鼠标在控件上右键时弹出来的菜单。Cursor属性获取或设置在鼠标指针位于此元素上时显示的光标。Parent属性获取此元素的逻辑父元素。它是一个只读属性。Tag属性可以保存任意类型的对象值它就像FrameworkElement类身上的一个小口袋但确能容纳万物。我们通常会将一些与控件相关的数据临时存放在Tag属性中当把控件作为参数传递时小口袋里面的对象也随之传递过去了ToolTip属性Margin- 外边距Object定义所有 .NET 对象的基类DispatcherObject定义当后台线程需要访问 UI 线程上的控件或对象时WPF 会在 UI 线程上提供一个“中间商”——Dispatcher调度员。这个调度员被封装在抽象类 DispatcherObject 中所有控件都继承自 DispatcherObject。因此当你在后台线程中需要访问控件时可以从控件身上找到这位中间商 Dispatcher由它代为完成对控件的操作与访问。DependencyObject定义数据驱动模式是因为几乎WPF控件的所有属性都可以采用这种模式去更新属性的Visual定义主要是为 WPF 中的呈现提供支持其中包括命中测试、坐标转换和边界框计算UIElement定义UIElement基类为我们提供了一系列的鼠标、键盘和触摸事件并提供了一些常用的依赖属性Visibility、IsEnabled、IsMouseOver、IsKeyboardFocused等。它可以呈现继承它的所有控件为控件布局时调整位置和大小响应用户的输入引发一系列的路由事件。FrameworkElement定义对UIElement的补充。Width/Height- 宽度/高度只有Grid有*其他都是数字或者auto默认值根据内容决定大小MinWidth/MinHeight- 最小尺寸MaxWidth/MaxHeight- 最大尺寸HorizontalAlignment/VerticalAlignment- 对齐方式默认值为StretchStyle- 样式DataContext- 数据上下文Resources-资源ContextMenu属性设置与获取控件的上下文菜单 就是鼠标在控件上右键时弹出来的菜单。Cursor属性获取或设置在鼠标指针位于此元素上时显示的光标。Parent属性获取此元素的逻辑父元素。它是一个只读属性。Tag属性可以保存任意类型的对象值它就像FrameworkElement类身上的一个小口袋但确能容纳万物。我们通常会将一些与控件相关的数据临时存放在Tag属性中当把控件作为参数传递时小口袋里面的对象也随之传递过去了ToolTip属性Margin- 外边距三、Shape图像控件四、Control字体的设置、前景色、背景色、Padding、模板、控件内容的对齐方式、边框。属性说明FontStyle获取或设置控件的字体结构类似于Word中字体的常规、斜体或倾斜FontStretch获取或设置紧缩或在屏幕上展开一种字体的程度。FontSize获取或设置字体大小。FontFamily获取或设置控件的字体系列。如微软雅黑 Microsoft YaHei UIForeground获取或设置控件的字体颜色也就是所谓的前景色画笔它是一个刷子BrushBackground获取或设置一个用于描述控件的背景画笔。BorderThickness获取或设置控件的边框宽度。IsTabStop获取或设置一个值该值指示控件是否包括在选项卡上的导航窗格中。VerticalContentAlignment获取或设置控件的内容的垂直对齐方式。TabIndex获取或设置一个值确定当用户导航控件通过使用 TAB 键元素接收焦点的顺序。Padding获取或设置在控件中的填充量。Template获取或设置控件模板。FontWeight获取或设置指定的字体粗细。BorderBrush获取或设置一个用于描述一个控件的边框背景画笔。HorizontalContentAlignment获取或设置控件的内容的水平对齐方式。4.1ContentControl内容控件有一个Content属性关键是这个属性的类型是object。4.2ItemControl条目控件Panel布局控件的基类属性BackgroundChildren属性这是一个集合属性也就是说所有的布局控件都可以添加多个子元素注意Panel的Background属性。有时候我们希望在布局控件上实现鼠标点击事件的获取请记得一定要给Background属性设置一个颜色值如果不希望有具体的颜色那就设置成Transparent 。不然您会踩坑的因为布局控件的Background属性没有值时是不能引发鼠标相关事件的。WPF 控件何时由内容决定大小何时填满父容器控件的大小行为是“由内容决定”还是“占满父容器”主要由尺寸属性Width/Height、对齐属性HorizontalAlignment/VerticalAlignment以及父布局容器的特性共同决定。最终显示的大小 父容器分配的空间∩子元素自身约束Stretch默认非 StretchWidth/Height 未设填满父容器给的 slot有限空间按内容大小Width/Height 设了固定尺寸Stretch 不再拉伸固定尺寸按对齐定位父容器给无限空间时StackPanel 的堆叠方向、CanvasStretch 没有有限 slot 可填结果还是内容大小。五、control的子类ContentControlButton (按钮)常用属性Content- 按钮显示的内容可以是文本或其他元素IsEnabled- 是否启用按钮BorderBrush/BorderThickness- 边框颜色/粗细Padding- 内边距内部元素到边框距离左上右下Command- 绑定的命令CommandParameter- 命令参数常用事件Click- 点击事件Button Content点击我 ClickButton_Click/TextBox (文本框)常用属性Text- 文本框内容MaxLength- 最大字符数TextWrapping- 文本换行方式IsReadOnly- 是否只读SelectionStart/SelectionLength- 选中文本AcceptsReturn- 是否接受回车AcceptsTab- 是否接受制表符常用方法Clear()- 清空文本SelectAll()- 全选文本AppendText(string)- 追加文本常用事件TextChanged- 文本改变时触发PreviewTextInput- 文本输入前触发LostFocus- 失去焦点时触发TextBox文本不居中引入问题在 WPF 的TextBox控件中HorizontalContentAlignmentCenter和TextAlignmentCenter虽然最终呈现的视觉效果都是让文字水平居中但它们的作用层级和控制范围有着本质的区别HorizontalContentAlignmentCenter控件内容层级它继承自Control基类控制的是整个内容对象在 TextBox 中这个内容对象是内部承载文字的ScrollViewer在控件内部的水平对齐方式。简单来说它决定了“装文字的那个容器”在 TextBox 里怎么摆放。TextAlignmentCenter文本排版层级它是TextBox专门用来控制纯文本排版的属性。它直接作用于文字本身决定了文字段落在其行宽内的水平对齐方式。Label (标签)常用属性Content- 显示内容Target- 指定关联的控件设置助记键时使用Label Content_Username: Target{Binding ElementNameuserNameTextBox}/ TextBox x:NameuserNameTextBox/CheckBox (复选框)常用属性IsChecked- 是否选中bool?支持三种状态Content- 显示内容ThreeState- 是否支持三种状态常用事件Checked/Unchecked- 选中状态改变时触发Indeterminate- 不确定状态时触发RadioButton (单选按钮)常用属性IsChecked- 是否选中Content- 显示内容GroupName- 分组名称同组内互斥常用事件Checked- 选中时触发Slider (滑块)常用属性TickPlacement-显示刻度Minimum/Maximum- 最小/最大值最大值默认值为0Value- 当前值TickFrequency- 刻度间隔IsSnapToTickEnabled- 是否吸附到刻度Orientation- 方向Horizontal/VerticalTicks-刻度出现在特定位置常用事件ValueChanged- 值改变时触发注意最大值默认值为10需要自己设置原生slider刻度没有数值标识ProgressBar (进度条)常用属性Minimum/Maximum- 最小/最大值Value- 当前值IsIndeterminate- 是否为不确定状态动态显示DatePicker (日期选择器)常用属性SelectedDate- 选择的日期DateTime?DisplayDate- 显示的日期DisplayDateStart/DisplayDateEnd- 可选日期范围IsDropDownOpen- 下拉框是否打开常用事件SelectedDateChanged- 日期改变时触发Expander (可展开控件)常用属性IsExpanded- 是否展开Header- 标题内容常用事件Expanded/Collapsed- 展开/折叠时触发集合控件ListBox (列表框)常用属性ItemsSource- 数据源SelectedItem- 当前选中项SelectedItems- 当前选中的多项当SelectionMode为Multiple或Extended时SelectionMode- 选择模式Single/Multiple/ExtendedDisplayMemberPath- 显示成员的路径常用方法ScrollIntoView(object)- 滚动到指定项常用事件SelectionChanged- 选择项改变时触发ComboBox (下拉框)常用属性ItemsSource- 数据源SelectedItem- 当前选中项SelectedIndex- 当前选中索引DisplayMemberPath- 显示成员的路径IsEditable- 是否可编辑Text- 编辑框中的文本当IsEditabletrue时常用方法Add(object)- 添加项Remove(object)- 移除项Clear()- 清空所有项常用事件SelectionChanged- 选择项改变时触发TreeView (树形视图)常用属性ItemsSource- 数据源SelectedItem- 当前选中项常用方法ExpandSubtree()- 展开所有子项常用事件SelectedItemChanged- 选中项改变时触发DataGrid (数据表格)常用属性ItemsSource- 数据源SelectedItem- 当前选中行AutoGenerateColumns- 是否自动生成列CanUserAddRows- 用户是否可以添加行CanUserDeleteRows- 用户是否可以删除行常用方法BeginEdit()- 开始编辑CommitEdit()- 提交编辑CancelEdit()- 取消编辑常用事件SelectionChanged- 选择改变时触发RowEditEnding- 行编辑结束时触发TabControl (选项卡)常用属性SelectedIndex- 当前选中标签索引SelectedItem- 当前选中标签项常用事件SelectionChanged- 标签切换时触发Menu (菜单)常用属性Items- 菜单项集合常用方法AddMenuItem()- 添加菜单项ContextMenu (上下文菜单)常用属性Items- 菜单项集合IsOpen- 菜单是否打开ToolTip (工具提示)常用属性Content- 提示内容Placement- 提示位置IsOpen- 是否显示ScrollViewer (滚动视图)常用属性HorizontalScrollBarVisibility- 水平滚动条可见性VerticalScrollBarVisibility- 垂直滚动条可见性Content- 滚动内容三、FrameworkElement的子类3.1Image常用属性Source- 图像源BitmapImage/UriStretch- 拉伸方式None/Fill/Uniform/UniformToFillStretchDirection- 拉伸方向Image SourceImages/logo.png StretchUniform/3.2Border (边框)常用属性BorderBrush- 边框颜色BorderThickness- 边框粗细CornerRadius- 圆角半径Background- 背景色3.3TextBlock也就是说没有control的属性以下这些都没。四、panel的子类4.1stackpanelOrientationHorizontal且有子控件时水平方向的大小取决于内容
延伸阅读

更多相关文章

2026/11/4 2:43:44

K12作业系统为何选择ASP:老旧环境下的稳定交付方案

简介:本资源是一套基于ASPAccess开发的‘网上作业提交系统’教学实践项目,面向K12教育信息化从业者、高校教育技术专业学生及Web初学者,聚焦解决网络课程中作业分发、提交、管理与学习导航等实际问题。系统实现了模块导航、知识点检索导航、知…

2026/11/4 2:43:44

PHPCMS V9 UTF8部署与模板开发实战指南

简介:PHPCMS V9 UTF8是一款面向中初级PHP开发者与网站运维人员的开源内容管理系统,专为构建多语言、高兼容性的企业官网、资讯门户或社区型网站提供开箱即用的解决方案。资源包为完整版安装程序(ZIP格式),大小8.39MB&a…

2026/11/4 2:43:44

ASP+SQL Server进销存系统实战:传统Web应用的事务与状态管理

简介:这是一套基于ASPMSSQL开发的多用户网络进销存管理系统源码,面向中小企业信息化建设者、ASP初学者及仓库管理软件二次开发者,解决传统手工记账效率低、数据分散、权限管控弱等痛点。资源包为RAR格式,大小3.43MB,虽…

2026/11/4 2:43:44

Unity WebGL 中文输入法候选框跟随与全屏兼容实战

简介:该资源面向在 Unity WebGL 项目中需要处理中文输入与输入法定位的开发者,重点解决浏览器环境下中文输入法无法正常唤起、输入框与光标位置错位,以及全屏切换后输入法窗口定位失效等问题,适合具备一定 Unity 与 JavaScript 交…

2026/11/4 2:43:44

Icepak热仿真入门:七步流程与新手避坑指南

简介:这份PDF面向热仿方向初学者与工程技术人员,系统梳理Icepak热流体仿真的完整操作流程,帮助读者建立从建模到结果分析的规范认知。内容围绕七个环节展开:模型建立与CAD导入、边界条件设置、网格划分、求解器选择、物理模型设定…

2026/11/4 2:38:44

实用工具分享,网盘下载

80款受欢迎的软件 https://pan.quark.cn/s/41ef68a54757 Y2A-Auto实用的搬运工具 https://pan.quark.cn/s/0217d14c4ead

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑