当前位置: 首页 > news >正文

7.WPF 的 TextBox 和 TextBlock 控件 - 实践

详细解析 C# WPF 的 TextBox 和 TextBlock 控件

1. TextBlock 控件

核心定位
轻量级文本显示控件,用于呈现只读、格式化的文本内容,不支持用户编辑。

关键特性

核心属性

属性说明示例值
Text显示文本"Hello World"
TextWrapping换行方式Wrap, NoWrap
TextTrimming溢出省略方式CharacterEllipsis, WordEllipsis
TextAlignment文本对齐Left, Center, Right
Inlines内联元素集合混合文本格式
LineHeight行高20
Foreground文本颜色Red, #FF0000

使用示例

<!-- 基础文本显示 --><TextBlock Text="用户协议内容" Margin="5"/><!-- 多行文本 --><TextBlock Text="长文本自动换行..."TextWrapping="Wrap"Width="200"/><!-- 富文本(混合格式) --><TextBlock><Run Text="重要提示:" FontWeight="Bold"/><LineBreak/><Hyperlink NavigateUri="https://example.com">点击查看详情</Hyperlink></TextBlock><!-- 数据绑定 --><TextBlock Text="{Binding CurrentTime, StringFormat='当前时间: {0:HH:mm}'}"/>

2. TextBox 控件

核心定位
用户输入控件,提供可编辑文本区域,支持基础文本编辑功能。

关键特性

  • ✏️ 文本编辑:支持输入/修改/删除文本
  • 滚动支持:内置垂直/水平滚动条
  • 撤销栈Undo()/Redo() 方法支持
  • 只读模式:通过 IsReadOnly 切换
  • ⚙️ 输入限制MaxLength 控制最大字符数
  • 拼写检查:内置拼写检查功能

核心属性

属性说明示例值
Text编辑内容双向绑定数据
AcceptsReturn允许多行输入True/False
TextWrapping多行换行方式Wrap
VerticalScrollBarVisibility垂直滚动条Auto, Visible
MaxLength最大字符数100
IsReadOnly只读模式True
SpellCheck.IsEnabled拼写检查True

使用示例

<!-- 单行输入框 --><TextBox Text="{Binding UserName}"Width="200"MaxLength="50"/><!-- 多行文本框 --><TextBox AcceptsReturn="True"TextWrapping="Wrap"VerticalScrollBarVisibility="Auto"Height="100"SpellCheck.IsEnabled="True"/><!-- 密码输入框(实际使用PasswordBox) --><PasswordBox PasswordChar="*" /><!-- 带水印提示 --><TextBox><TextBox.Style><Style TargetType="TextBox"><Setter Property="Foreground" Value="Gray"/><Style.Triggers><Trigger Property="IsFocused" Value="True"><Setter Property="Foreground" Value="Black"/></Trigger></Style.Triggers></Style></TextBox.Style><TextBox.Text>请输入内容...</TextBox.Text></TextBox>

TextBlock 与 TextBox 核心区别

特性TextBlockTextBox
编辑能力❌ 只读✅ 可编辑
主要用途静态文本展示用户输入区域
文本格式✅ 富文本(混合格式/超链接)❌ 仅纯文本
性能⚡ 轻量高效⚖️ 相对较重
滚动条❌ 需配合ScrollViewer✅ 内置滚动支持
多行支持✅ 自动换行✅ 需设置AcceptsReturn=True
数据绑定方向单向(OneWay)双向(TwoWay)
交互功能有限(如超链接)完整(选择/复制/粘贴/撤销)
典型场景标签/说明/标题表单输入/文本编辑区

使用场景指南

  1. 选择 TextBlock 当

  2. 选择 TextBox 当

特殊提示

通过合理选用这两个控件,可显著提升WPF应用的交互体验和性能表现。

http://www.zskr.cn/news/13120.html

相关文章:

  • 深入解析:深入理解 Docker:从入门到实践
  • ⸢ 陆 ⸥ ⤳ 可信纵深防御:整体架构 - 实践
  • 安装 HuggingFace datasets 模块、包、库
  • 详细介绍:【序列晋升】45 Spring Data Elasticsearch 实战:3 个核心方案破解索引管理与复杂查询痛点,告别低效开发
  • 博客写作者该何去何从
  • JSON dump in Ruby
  • 详细介绍:python+django/flask+uniapp基于微信小程序的瑜伽体验课预约系统
  • GraphRAG对自然语言处理中深层语义分析的革命性影响与未来启示 - 教程
  • 详细介绍:云原生 vs 传统部署
  • 记录 | 关于陪伴型交互AI的一些探讨
  • luogu P1719 最大加权矩形
  • Laravel5.8 利用 snappyPDF 生成PDF文件
  • 数据结构——链表 - 详解
  • 25秋周总结4
  • 饥荒联机版
  • LinuxC++项目开发日志——基于正倒排索引的boost搜索引擎(5——通过cpp-httplib库建立网页模块) - 详解
  • 微信二次开发文档
  • 【底层机制】Android标准C库为什么选择 bionic 而不是 musl【一】 - 详解
  • DiffDock 环境安装和启用教程
  • 20250927
  • 详细介绍:CTFshow系列——PHP特性Web113-115(123)
  • [题解]P11533 [NOISG 2023 Finals] Topical
  • [题解]P10231 [COCI 2023/2024 #4] Putovanje
  • WPF Prism register interface and service, view and viewmodel, IRegionManager, RequestNavigate
  • 让YOLO飞起来:从CPU到GPU的配置指南
  • 忘形篇
  • 1748:约瑟夫问题
  • 候机的队伍
  • Keil uVision5 设置 hex 输出路径,不放Objects目录下
  • 垃圾收集器G1ZGC详解