如何知道文本块的文本是否太长?

时间:2015-03-06 09:34:04

标签: xaml

我有两个文本块。我想将自定义文本设置为第一个,如果它太长而无法完全显示,我希望将其继续到第二个文本框,如有必要则继续第三个文本框。

我该怎么做?有没有办法知道文本是否会被截断或包装在文本块中?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

没有开箱即用的解决方案。你可以尝试的是读取文本框的长度(ActualWidth属性),看看它是否比它所在的容器长。

对于大多数字体,检查字符串的长度不是有效选项,因为在大多数字体中,W占用的空间比I大。

        if (TextBlock1.ActualWidth > 100)
        {
            TextBlock2.text = yourtext;
        }

确保将文本换行设置为false。

答案 1 :(得分:0)

你不需要它) 您可以将第一个TextBlock的TextWrapping属性设置为" Wrap"并且它会正常工作!

<TextBlock Text="Long text here" TextWrapping="Wrap"/>

修改

将全文放入TextBlock1。 TextBlock限制HERE为50,您可以根据需要进行设置。

string some = TextBlock1.Text;
if (some.Length > 50)
{
   TextBlock2.Text = some.Substring(50, some.Lenght - 50);
   some = some.Remove(51, some.Lenght - 50);
   TextBlock1.Text = some;
}

希望它有所帮助。