当前位置: 首页 > 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.jsqmd.com/news/5090/

相关文章:

  • 关于【机器人小脑】的敏捷入门介绍
  • 深入解析:深入理解 Docker:从入门到实践
  • ⸢ 陆 ⸥ ⤳ 可信纵深防御:整体架构 - 实践
  • 从中序与后序遍历序列构建二叉树的迭代解法
  • (基于江协科技)51单片机入门:1.LED - 指南
  • 安装 HuggingFace datasets 模块、包、库
  • WPF draw triangle and add contextmenu, menuitem programmatically
  • 使用 SignalR 向前端推送图像
  • C# WPF实现ComboBox实时搜索与数据绑定 - 教程
  • 隐私保护与联邦学习文献阅读
  • Java实习模拟面试|离散数学|概率论|金融英语|数据库实战|职业规划|期末冲刺|今日本科计科要闻速递:技术分享与学习指南 - 实践
  • 学术写作
  • 2025.9.27
  • 深入解析:用 Spring Boot 打造 Docker 和 K8s 部署的硬核指南
  • 9.27(课后作业
  • 详细介绍:【序列晋升】45 Spring Data Elasticsearch 实战:3 个核心方案破解索引管理与复杂查询痛点,告别低效开发
  • 四则运算和验证码
  • 博客写作者该何去何从
  • 第一次课动手动脑合集
  • JSON dump in Ruby
  • 详细介绍:python+django/flask+uniapp基于微信小程序的瑜伽体验课预约系统
  • smartctl on FreeBSD: Please specify device type with the -d option.
  • GraphRAG对自然语言处理中深层语义分析的革命性影响与未来启示 - 教程
  • prefect
  • 生成算数问题*30
  • 6379:统计学生信息(使用动态链表完成)
  • 详细介绍:云原生 vs 传统部署
  • 使用IOT-Tree Server通过FINS协议连接欧姆龙CP2E-N系列PLC - 详解
  • 实用指南:疑难bug之正确处理InterruptedException
  • 课后作业1-3