福州城乡建设发展总公司官方网站,视频wordpress,域名注册网站有哪些,手机版网站原理文章目录 1. TextBlock控件介绍2. TextBlock的基本用法2.1 基本语法2.2 在代码中创建TextBlock 3. TextBlock的常用属性3.1 文本内容相关属性3.2 字体相关属性3.3 外观相关属性3.4 布局相关属性 4. TextBlock文本格式化4.1 使用Run元素进行内联格式化4.2 其他内联元素 5. 处理长… 文章目录 1. TextBlock控件介绍2. TextBlock的基本用法2.1 基本语法2.2 在代码中创建TextBlock 3. TextBlock的常用属性3.1 文本内容相关属性3.2 字体相关属性3.3 外观相关属性3.4 布局相关属性 4. TextBlock文本格式化4.1 使用Run元素进行内联格式化4.2 其他内联元素 5. 处理长文本5.1 使用LineBreak手动换行5.2 使用TextWrapping自动换行5.3 使用TextTrimming截断文本 6. 示例应用场景6.1 基本文本显示6.2 多样式文本6.3 带有超链接的文本 7. TextBlock与TextBox的比较8. TextBlock控件的优化与性能8.1 优化建议8.2 性能考虑 9. 高级示例9.1 创建带格式化的TextBlock9.2 文本装饰效果9.3 使用渐变文本 10. 特殊用例与技巧10.1 使文本可选择10.2 垂直文本显示10.3 实现文本阴影效果 11. 总结与扩展12. 学习资源 可以根据Github拉取示例程序运行 GitHub程序演示地址点击直达 也可以在本文资源中下载 1. TextBlock控件介绍
TextBlock是WPF中最基础且使用最广泛的控件之一主要用于显示文本内容。虽然它并不直接继承自Control类实际上继承自FrameworkElement但它的使用方式与其他控件相似。TextBlock是一个轻量级的文本显示控件相比Label控件它更加简单高效特别适合显示短小的文本或多行文本。
TextBlock控件的主要功能是显示文本信息它不具备边框、背景等复杂样式虽然可以设置Background属性也没有模板和触发器这使得它在资源消耗上比Label控件更加轻量。
2. TextBlock的基本用法
2.1 基本语法
在XAML中创建一个简单的TextBlock控件
TextBlock Text这是一个TextBlock控件/或者使用开始和结束标签之间的内容作为文本
TextBlock这是另一种设置文本的方式/TextBlock2.2 在代码中创建TextBlock
在C#代码中动态创建TextBlock
// 创建TextBlock实例
TextBlock textBlock new TextBlock();
// 设置文本内容
textBlock.Text 这是在代码中创建的TextBlock;
// 设置其他属性
textBlock.FontSize 16;
textBlock.Foreground new SolidColorBrush(Colors.Blue);
// 将TextBlock添加到容器中例如Grid
myGrid.Children.Add(textBlock);3. TextBlock的常用属性
TextBlock提供了多种属性用于控制文本的显示效果
3.1 文本内容相关属性
Text设置或获取TextBlock的文本内容TextAlignment设置文本的水平对齐方式Left、Center、Right、JustifyTextWrapping控制文本的换行方式NoWrap、Wrap、WrapWithOverflowTextTrimming设置文本剪裁方式None、CharacterEllipsis、WordEllipsis
3.2 字体相关属性
FontFamily设置字体家族FontSize设置字体大小FontWeight设置字体粗细如Normal、BoldFontStyle设置字体样式如Normal、ItalicFontStretch设置字体的拉伸如Normal、Condensed、Expanded
3.3 外观相关属性
Foreground设置文本颜色Background设置背景色LineHeight设置行高TextDecorations设置文本装饰如下划线Underline
3.4 布局相关属性
Padding设置内边距Margin设置外边距HorizontalAlignment水平对齐方式VerticalAlignment垂直对齐方式
4. TextBlock文本格式化
4.1 使用Run元素进行内联格式化
TextBlock支持通过使用内联元素对文本的不同部分应用不同的格式
TextBlockRun Text这是 FontWeightBold/Run Text不同格式 ForegroundRed FontStyleItalic/Run Text的文本示例 FontSize16/
/TextBlock4.2 其他内联元素
除了Run元素外TextBlock还支持其他内联元素
Bold粗体文本Italic斜体文本Underline下划线文本Hyperlink超链接LineBreak换行InlineUIContainer可以包含其他UIElement元素
示例
TextBlock这是Bold粗体/Bold文本这是Italic斜体/Italic文本LineBreak/这是第二行文本包含Hyperlink NavigateUrihttps://www.example.com超链接/Hyperlink
/TextBlock5. 处理长文本
在实际应用中我们经常需要处理各种长文本的情况TextBlock提供了多种解决方案
5.1 使用LineBreak手动换行
TextBlock这是第一行文本LineBreak/这是第二行文本LineBreak/这是第三行文本
/TextBlock5.2 使用TextWrapping自动换行
TextBlock TextWrappingWrap Width200这是一段很长的文本内容当文本超出控件宽度时会自动换行显示以确保文本内容完全可见。
/TextBlock5.3 使用TextTrimming截断文本
TextBlock TextTrimmingCharacterEllipsis Width150这是一段很长的文本超出部分将被截断并显示省略号...
/TextBlock6. 示例应用场景
6.1 基本文本显示
TextBlock Text用户名 FontSize14 Margin5VerticalAlignmentCenter/6.2 多样式文本
TextBlock Margin10Run TextWPF开发 FontWeightBold FontSize16/LineBreak/Run TextTextBlock控件 ForegroundBlue/LineBreak/Run Text可以显示多种样式的文本 FontStyleItalic/
/TextBlock6.3 带有超链接的文本
TextBlock Margin10更多信息请访问Hyperlink NavigateUrihttps://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/ RequestNavigateHyperlink_RequestNavigateWPF官方文档/Hyperlink
/TextBlock// 在代码中处理超链接点击事件
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{// 使用默认浏览器打开链接Process.Start(new ProcessStartInfo{FileName e.Uri.AbsoluteUri,UseShellExecute true});e.Handled true;
}7. TextBlock与TextBox的比较
特性TextBlockTextBox主要用途显示文本编辑文本可编辑性只读可编辑资源消耗轻量级较重默认外观无边框有边框文本选择不支持默认情况支持内联格式化支持多种内联元素不支持除非使用RichTextBox
8. TextBlock控件的优化与性能
8.1 优化建议
对于静态文本优先使用TextBlock而非Label避免在TextBlock中放置过多文本内容当需要显示大量文本时考虑使用RichTextBox或FlowDocument对于固定宽度的TextBlock总是设置TextWrapping属性
8.2 性能考虑
// 优化大量TextBlock的创建
private void CreateOptimizedTextBlocks(Panel container, int count)
{// 为了提高性能预先禁用布局更新container.BeginInit();for (int i 0; i count; i){TextBlock textBlock new TextBlock();textBlock.Text $文本块 {i};// 其他属性设置container.Children.Add(textBlock);}// 完成后重新启用布局更新container.EndInit();
}9. 高级示例
9.1 创建带格式化的TextBlock
TextBlock Margin10 LineHeight25 TextAlignmentJustifyRun FontWeightBold FontSize16WPF TextBlock控件详解/RunLineBreak/RunTextBlock是WPF中用于显示文本的基础控件具有轻量级、高效的特点。它支持多种格式化选项包括字体、颜色、装饰等。/RunLineBreak/Run FontStyleItalic ForegroundGray本文将详细介绍TextBlock的各种功能和用法。/Run
/TextBlock9.2 文本装饰效果
TextBlock支持的文本装饰有None、Underline、Baseline、Strikethrough、Overline。
StackPanel Margin10TextBlock Text普通文本 Margin0,5/TextBlock Text下划线文本 TextDecorationsUnderline Margin0,5/TextBlock Text基线文本 TextDecorationsBaseline Margin0,5/TextBlock Text删除线文本 TextDecorationsStrikethrough Margin0,5/TextBlock Text上划线文本 TextDecorationsOverline Margin0,5/
/StackPanel9.3 使用渐变文本
TextBlock Text渐变文本效果 FontSize20 FontWeightBoldTextBlock.ForegroundLinearGradientBrush StartPoint0,0 EndPoint1,0GradientStop ColorBlue Offset0/GradientStop ColorGreen Offset0.5/GradientStop ColorRed Offset1//LinearGradientBrush/TextBlock.Foreground
/TextBlock10. 特殊用例与技巧
10.1 使文本可选择
默认情况下TextBlock中的文本不可选择但我们可以通过一些技巧使其可选
// 在代码中创建可选择文本的TextBlock
TextBlock selectableTextBlock new TextBlock();
selectableTextBlock.Text 这是可以选择的文本;
// 使文本可选择
selectableTextBlock.IsHitTestVisible true;
selectableTextBlock.Focusable true;
selectableTextBlock.MouseDown (s, e) {if (e.ClickCount 1) {((TextBlock)s).Focus();}
};10.2 垂直文本显示
TextBlock本身不直接支持垂直文本但可以通过以下方法实现
使用RenderTransform旋转TextBlock
TextBlock Text垂直文本 FontSize16TextBlock.RenderTransformRotateTransform Angle90//TextBlock.RenderTransform
/TextBlock利用窄宽度和TextWrapping属性
TextBlock Text这是垂直显示的文本 Width1 TextWrappingWrap/10.3 实现文本阴影效果
Grid!-- 阴影文本 --TextBlock Text阴影文本效果 FontSize24 FontWeightBold Foreground#50000000 Margin2,2,0,0/!-- 前景文本 --TextBlock Text阴影文本效果 FontSize24 FontWeightBold ForegroundWhite/
/Grid11. 总结与扩展
TextBlock是WPF应用程序中不可或缺的基础控件它简单、高效但功能强大。通过本文的介绍我们详细了解了TextBlock的基本用法、属性设置、文本格式化以及各种高级用法。
在实际应用中需要根据具体需求选择合适的文本显示控件
对于简单的文本显示使用TextBlock需要用户输入文本时使用TextBox需要显示和编辑富文本时使用RichTextBox显示大量格式化文档时使用FlowDocument相关控件
随着WPF应用的发展TextBlock控件也在不断完善了解并熟练使用这一基础控件对于开发高质量的WPF应用程序至关重要。
12. 学习资源
微软官方文档 - TextBlock类WPF TextBlock控件概述C# Corner - WPF TextBlock