首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带省略号和冒号的TextTrimming

带省略号和冒号的TextTrimming
EN

Stack Overflow用户
提问于 2012-03-09 15:42:39
回答 3查看 32.9K关注 0票数 25

这是一个相对简单的问题:

我可以用省略号裁剪文本,如下所示:

代码语言:javascript
复制
<TextBlock Text="{Binding}" TextTrimming="CharacterEllipsis"/>

它会给我一些类似的东西:

“这句话太长了”

=>

“这句话我...”

这一切都很棒,但我真正想要的是:

“这句话...:”/“这句话...”

我要找的是省略号后面的冒号。有没有一种简单的方法来实现这一点?

编辑:

很抱歉给你造成了混乱。

我想要将缺省省略号字符串从“...”到“……:”。同样,我将在文本字符串本身中包含一个冒号。这样,我将始终显示冒号。同样,在每种情况下,所有事情都应该在同一行上。

以下是几个可以接受的结果:

足够简短:

方式太l……:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-10 01:41:45

这是可行的,但我需要添加一些填充,以便冒号始终可见:

代码语言:javascript
复制
<TextBlock Padding="0,0,5,0" >
    <TextBlock TextTrimming="CharacterEllipsis">Lorem ipsum dolor sit amet, consectetur adipisicing </TextBlock>
    <TextBlock>:</TextBlock>
</TextBlock>
票数 28
EN

Stack Overflow用户

发布于 2012-03-09 16:55:33

使用两个TextBlocks,其中省略号在第一个示例中,冒号在第二个示例中。

更新:

看起来这是一个相对简单的问题,有很多复杂的地方。

人们可能会想要一些TextBlocks,第一个包含目标文本,另外两个显示":“和"...:”,并根据第一个TextBlock是否有足够的空间显示其所有文本在可见性值之间进行转换。这是有可能的,但也有可能导致布局不稳定。

在刚刚实现了一个自定义面板之后,我可以想象一个可能的解决方案,其中一个设计用来容纳三个孩子,这将是上面描述的三个TextBlocks

从panel继承的自定义面板应重写两个关键方法: Measure和Arrange。

在测量方法中,所有的孩子都应该被测量。

在arrange方法中,检查是否有足够的空间来显示前两个子级,如果有,则将它们并排放置。如果没有足够的空间,则显示第一个孩子的大小以允许显示第三个孩子的房间,并将第三个孩子设置为右对齐。

更新:

我尝试了自定义面板,它工作,除了第一个TextBox是剪辑部分字符。

干净格式化的最终解决方案是这样一种方法:调整显示字符串,直到适合所分配的空间,并应用适当的后缀。

票数 2
EN

Stack Overflow用户

发布于 2020-12-03 09:12:18

如果字符串中不包括冒号,则可以使用Binding.StringFormat

代码语言:javascript
复制
<TextBlock Text="{Binding, StringFormat={}{0}:}" TextTrimming="CharacterEllipsis"/>

(我意识到这是一个非常古老的问题,但我碰巧发现了它,所以我想我应该把这个问题抛给其他关注它的人。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9630548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档