首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改文本截断行为

更改文本截断行为
EN

Stack Overflow用户
提问于 2016-11-13 03:49:53
回答 1查看 101关注 0票数 0

我想在TextBlock中显示一个路径。

标准截断最终删除了我想要显示的信息的相关部分,因为它首先截断了行的最右边部分。

在XAML中,是否有任何方法可以指定文本应该从左第一而不是从右截断?设置FlowDirection和TextReadingOrder似乎对截断方向没有任何影响,如下所示:

代码语言:javascript
复制
<TextBlock Text="{Binding Path}" FontSize="18" FlowDirection="RightToLeft" TextReadingOrder="UseFlowDirection" TextTrimming="CharacterEllipsis" />

是否可以在纯XAML中使用,或者解决方案是否需要更复杂(检查页面上文本块的大小并修改文本以进行补偿)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-14 07:38:16

我想当文本太长的时候,你想从左边修剪一下文本吗?如果是这样的话,没有这样的属性可以设置来帮助这项工作在UWP,你将需要自己修剪它。

这是我的演示:

代码语言:javascript
复制
<TextBlock Text="Left-abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
           abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
           abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
           abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
           abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz-Right"
           Margin="0,5" TextWrapping="NoWrap"
           Loaded="TextBlock_Loaded" />

代码背后:

代码语言:javascript
复制
private void TextBlock_Loaded(object sender, RoutedEventArgs e)
{
    var tb = sender as TextBlock;
    //desired width of TextBlock
    var desiredWidth = tb.DesiredSize.Width;
    //cal. char. in string
    var count = tb.Text.Count();
    var reducedText = tb.Text;
    if (reducedText != "")
    {
        //actual width of text
        var textWidth = tb.ActualWidth;
        //trim count
        var trimCount = Math.Ceiling((count / textWidth) * desiredWidth) - 4;
        reducedText = "... " + reducedText.Substring((int)(count - trimCount), (int)trimCount);
        tb.Text = reducedText;
    }
}

我的演示只考虑文本很长的场景(ActualWidth > DesiredWidth),如果这个场景的大小足以容纳文本,您也将实现这个场景。请注意,此方法仅在Loaded事件中工作,因为ActualWidth将更改为其呈现的宽度,而不是文本宽度,然后TextBlock将被完全呈现。

另外,由于您使用的是TextBlockTextBlock属性的数据绑定,所以您可以创建一个converter来修剪文本。

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

https://stackoverflow.com/questions/40570378

复制
相关文章

相似问题

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