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

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应用的交互体验和性能表现。