首页/新闻资讯/正文详情

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

发布时间:2026/11/4 1:53:01 来源:云帆数科 栏目:资讯中心
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且有子控件时水平方向的大小取决于内容

相关推荐

浩鑫能源|800W 换电柜电源/充电器
浩鑫能源|800W 换电柜电源/充电器

换电柜电源800W 90V 15ACY-0256智能电源模块的领跑者在共享经济与物联网设备爆发的时代,充电柜、智能快递柜、通信交换机等设备已成为城市基础设施的重要组成部分。然而,这些设备的“心脏”——电源系统,却常常面临电压不稳、环境复杂、管理困… · 2026/11/4 1:52:01

转:读书的重要性
转:读书的重要性

个人理解: 走出小我,成就大我 跳出此时此地的限制,穿透一时一地的迷雾,从更大的格局和更长远的眼光来把握眼前的各种扰动,从而把不解和不安化成豁然开朗和淡定从容,最后养成战略上的定力为什么读书对领导者… · 2026/11/4 1:52:01

Altium Designer(AD20)-生成网络表及更新PCB板
Altium Designer(AD20)-生成网络表及更新PCB板

/* 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 1:52:01

大型制造集团智能制造人才体系建设:三年人才规划怎么做【HR注意】
大型制造集团智能制造人才体系建设:三年人才规划怎么做【HR注意】

2026智能制造人才体系与战略HR规划指南|倍利福一家拥有8家工厂的制造集团,计划未来三年投入资金推进产线自动化、MES升级、设备数据采集和工业AI应用。 设备采购完成了,系统也陆续上线,但半年后发现:OT团队不懂软件&am… · 2026/11/4 2:37:16

接口跑通了,我为什么还要打开页面看一眼
接口跑通了,我为什么还要打开页面看一眼

接口跑通了,我为什么还要打开页面看一眼 前言 这是「把业务系统接进 Agent」系列的第六篇。前面几篇一直在讲怎么把接口包成工具、怎么管权限、怎么接 MCP。这篇讲一个很容易被跳过、但跳过之后一定出事的问题:接口成功之后,怎么确认事情真… · 2026/11/4 2:37:16

别再手动打标签!一维助手三类标签组,自动搭好客户画像
别再手动打标签!一维助手三类标签组,自动搭好客户画像

私域客户越来越多,靠销售、运营手动打标签,几乎是很多团队的通病。不仅耗时耗力,还容易出现标准不一、漏标错标的问题:同一个客户,不同销售标记的意向完全不一样,后续做定向群发、跟进盘活,精准… · 2026/11/4 2:37:16

精于检验 · 诚于服务|阿尔法检验,品质全域护航 · 认证一站通达
精于检验 · 诚于服务|阿尔法检验,品质全域护航 · 认证一站通达

我们怀着谦虚和恭敬,以合作共赢的意愿,携手与您共同发展ALPHA阿尔法检验——精于检验,诚于服务。扎根深圳的第三方专业检验检测机构,为您的贸易与品质保驾护航。关于我们ALPHA阿尔法检验深耕检测认证行业近20年,2005年… · 2026/11/4 2:37:16

Python 多模态手势交互技术报告:融合手部骨骼、眼动与语音的无接触交互原型
Python 多模态手势交互技术报告:融合手部骨骼、眼动与语音的无接触交互原型

多模态手势交互的目标,是让人不再依赖手柄、鼠标或触屏,而是通过自然手势、视线落点和语音指令共同表达意图。手部骨骼追踪负责捕捉动作形态,眼动追踪提供“用户在看哪里”的空间锚点,语音指令补充明确语义,三者结合可… · 2026/11/4 2:37:16

录得清、找得到、翻得快——规矩立住了才不烧心
录得清、找得到、翻得快——规矩立住了才不烧心

"贵是贵点,但吃了不烧心""宁可少挣点,规矩不能坏"——这个秋天最出圈的台词,说的是包子铺,戳的是所有人:不怕多花点功夫,怕的是被糊弄。 职场里最常被糊弄的地方在哪?就在会… · 2026/11/4 2:36:15

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

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

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

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

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

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

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

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

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

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

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

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

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码