WPF中的TextBlock处理长字符串

Xaml:

<StackPanel>
                <TextBlock Margin="10" Foreground="Red">
                        This is a TextBlock control<LineBreak />
                        with multiple lines of text.
                </TextBlock>
                <TextBlock Margin="10" TextTrimming="CharacterEllipsis" Foreground="Green">
                        This is a TextBlock control with text that may not be rendered completely, which will be indicated with an ellipsis.
                </TextBlock>
                <TextBlock Margin="10" TextWrapping="Wrap" Foreground="Blue">
                        This is a TextBlock control with automatically wrapped text, using the TextWrapping property.
                </TextBlock>
</StackPanel>

如图:

上面用了三个文本框,每一个都用不同的颜色,它们用不同的方式处理了文本太长的问题。

红色文本框使用LineBreak标记在指定的位置换行。它给了你绝对的控制权,能做到随时切换到新行。但是很多情况下却不适用。如果用户把窗口拉大,文本仍在原来的位置换行,即使有足够的空间把整个文本一行显示。

绿色文本框使用TextTrimming属性赋值为CharacterEllipsis,当文本无法显示全的时候显示为省略号。这很好的显示了文本很长但是不够显示完整。如果你有很长的文本但是不想显示多行,那么这是一个很好的方法。另外你还可能用到WordEllipsis,它以单词为单元进行省略,而不是以字母,防止一个单词只显示部分。

蓝色文本框使用TextWrapping属性赋值为Wrap,它能让文本自动换行。与第一种手动切换相比,它是完全自动的。它还能随着空间的改变而自动调整。通过拉大或缩小窗口,你会发现自动换行发挥完美。

原文地址:https://www.cnblogs.com/Leozi/p/10798482.html

时间: 2024-11-08 19:23:41

WPF中的TextBlock处理长字符串的相关文章

WPF中使用TextBlock显示长字符串的处理方法

原文:WPF中使用TextBlock显示长字符串的处理方法 在WPF中,有时候要显示长字符串,需要用到换行或者截短的情况,方法如下: 换行 可以使用<LineBreak/>标记换行: 可以用TextWrapping属性(如非特殊,推荐用这种方式,自动.自适应).它可以有NoWrap(不换行.缺省值).Wrap(换行).WrapWithOverflow(换行但允许超出文本块的宽度).WrapWithOverflow在换行的算法没办法确定如何正确换行(比如某个单词超长.换不换都超出宽度)时,允许行

WPF中让TextBlock每一个字符显示不同的颜色

原文:WPF中让TextBlock每一个字符显示不同的颜色 XAML代码: <TextBlock x:Name="tb"> <Run Foreground="Red">R</Run> <Run Foreground="Green">G</Run> <Run Foreground="Blue">B</Run> <Run Text="

WPF中使用Hashtable剔除重复字符串(比如电话号码)

原文:WPF中使用Hashtable剔除重复字符串(比如电话号码) 本文中的输入框中的字符串是逗号隔开的,你可以换成其他特别的字符串. 本篇中的亮点:1. 里面有一个玻璃样式按钮,用XAML制作2. WPF下TextBox允许多行文本的设置3. 使用Hashtable剔除重复字符串(比如电话号码) 运行时的样子:(为了保护隐私,做了虚化及其他处理) WPF下TextBox允许多行文本的设置:需要:(1)将TextWrapping设为"Wrap"(2)将AcceptsReturn设为&q

[转]在WPF中区别TextBlock和Label

TextBlock和Label都是用来显示少量数据的.好多文章对Label存在的描述都是它允许使用"快速获取"."快速获取"就是允许你用Alt加上其它的按键快速和UI界面的某个控件交互,比如你可以用ALT加上O键来点击一个OK按钮. TextBlock直接继承于FrameworkElement,而Label继承于ContentControl.这样看来,Label可以做这样的事情: 1.可以定义一个控件模板(通过Template属性) 2.可以显示出string以外的

WPF中使用TextBlock的Inlines属性来完成复杂的文字内容

参考:http://blog.csdn.net/zhangjiyehandsom/article/details/5498845 1. 需求:要在一行内容中显示不同颜色以及粗细不一的字体, 解决办法:可以使用多个Label来显示这个功能,但是这个方法太笨来, 可以直接使用TextBlock的Inlines属性 例子如下:http://my.oschina.net/owen123456/blog/162190 目前正在赶项目,到时有空再回来详细书写

WPF中的TextBlock隐藏边框

TextBlock默认是有边框的,显示效果如下:有一个淡蓝色的边框围绕着 如果需要隐藏这个边框,则只需要在代码中加上以下代码即可: BorderBrush="{x:Null}" BorderThickness="0" <TextBox Text="Hello" Width="480" TextWrapping="Wrap" IsReadOnly="True" BorderBrush

2014年阿里巴巴在线笔试题-第3大题-公共最长字符串长度

说明 2014年阿里巴巴在线笔试题-第3大题    首先,我没参加这次的阿里巴巴在线笔试题,题目全部是从别人口中描述而来,对于以下的分析,如果有什么不对的地方还望指教.也希望大家能够有更好的办法,希望大家来能不吝赐教. 题目描述 给定一个主字符串和一个匹配字符串,现在问你,找出 "主串中可匹配到的匹配串中子串的最大长度",可能比较绕,举个例子吧 主字符串       abcdefgsdff     记为A 匹配字符串   abefgf               记为B 要求的值就是 

WPF中动态更新TextBlock文字中的超链接,文本

1.------------------------------------------------------------------------- 修改超链接的文本文字: <TextBlock><Hyperlink> <TextBlock  x:Name="TextBlockNeedChange" Text="改变的文本" /> </Hyperlink></TextBlock> 修改TextBlockN

【算法】查找字符串中无重复最长子串的长度

题目:输入是一个字符串,找出没有重复字符的最长子字符串的长度 示例: "abcabcbb"最长子串(abc)长度为3 "bbbbbbb"最长子串(b)长度为1 "abdevbac"最长子串(bdev)长度4 算法思想: 设置两个下标标识,初始时都位于数组的头部,并设置一个HashSet.标识runner先往后走,并将经过的字符放入HashSet中,当存在重复的字符时停止移动:此时,标识walker在后面追,直到walker的字符和runner的字