2

我有一个 TextBlock和非常长的文本TextTrimming="CharacterEllipsis"TextWrapping="NoWrap"大约 140 000 个符号。我将此文本放入 TextBlock,然后 TextBlock 将此文本显示为多行控件,并在每一行中进行修剪。

XAML

    <Window x:Class="WpfApplication3.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <TextBlock x:Name="textBlock" TextTrimming="CharacterEllipsis" TextWrapping="NoWrap" Width="500"/>
        </Grid>
    </Window>

C#

    public partial class MainWindow : Window {
            public MainWindow() {
                InitializeComponent();
                string str = "q ";
                for(int i = 0; i < 20000; i++) {
                    str += "qwetre ";
                }
                textBlock.Text = str;
            }
        }


有任何想法吗?是 MS 的错误,还是我可以改变这种行为?

4

2 回答 2

2

TextblockTextWrapping属性默认设置为 NoWrap。

因此,除非你

  1. 将其显式设置为 Wrap/WrapWithOverflow 或
  2. 添加<LineBreak/>带有文本的标签

文本将始终仅显示在一行上。

@Mirimon 我完全按照您的说明运行了这个项目,但我只看到一行!

于 2012-09-03T20:47:13.013 回答
2

我已经找到了我的问题的答案。TextBlock 在 4.5 框架下有这种行为(我已经安装了 VS2012),我在没有 VS2012 的计算机上尝试过,工作正常,只有一行。

于 2012-09-04T07:26:28.307 回答