当前位置: 首页 > 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.hskmm.com/?act=detail&tid=19330

相关文章:

  • 从中序与后序遍历序列构建二叉树的迭代解法
  • 安装 HuggingFace datasets 模块、包、库
  • 使用 SignalR 向前端推送图像
  • 隐私保护与联邦学习文献阅读
  • Java实习模拟面试|离散数学|概率论|金融英语|数据库实战|职业规划|期末冲刺|今日本科计科要闻速递:技术分享与学习指南 - 实践
  • 学术写作
  • 2025.9.27
  • 9.27(课后作业
  • 详细介绍:【序列晋升】45 Spring Data Elasticsearch 实战:3 个核心方案破解索引管理与复杂查询痛点,告别低效开发
  • 详细介绍:python+django/flask+uniapp基于微信小程序的瑜伽体验课预约系统
  • 生成算数问题*30
  • 6379:统计学生信息(使用动态链表完成)
  • 详细介绍:云原生 vs 传统部署
  • 单链表
  • 课后作业1-3
  • GNSS精度判断和协方差矩阵 - MKT
  • Insightly模板页面存储型XSS漏洞分析与复现
  • 记录 | 关于陪伴型交互AI的一些探讨
  • 课后作业
  • luogu P1719 最大加权矩形
  • CF2065D Skibidus and Sigma
  • 微信二次开发个人号api
  • 课后作业2(动手动脑,课后实验性问题)
  • 从零开始构建图注意力网络:GAT算法原理与数值实现详解
  • 关于Leetcode 812题的简单思考
  • Laravel5.8 利用 snappyPDF 生成PDF文件
  • 25秋周总结4
  • Python 潮流周刊#121:工程师如何做出高效决策?
  • 饥荒联机版
  • iSCSI网络存储——基于VM17下麒麟V10SP1与SP2的共享配置