C# 在windows phone 7&;中查找文本块的行计数;8.

C# 在windows phone 7&;中查找文本块的行计数;8.,c#,windows-phone-7,windows-phone-8,C#,Windows Phone 7,Windows Phone 8,我正在windows phone中使用文本块 我正在绑一根任意长度的绳子。如果字符串长度超过两行,我只想显示两行,我想在第二行的末尾显示“…” 在这里,我不能使用长度,因为例如:“W”将占用更多空间,但像“i”这样更细的字符甚至可能达不到第二行。所以我不能用这里的长度 我看到了TextTrimming=“WordEllipsis”,但它在一个单词后显示省略号。若第二行的最后一个字太大,那个么最后一个字将被删除 因此,请告诉我如何才能找到Textblock的行数。您需要的是texttiming=“

我正在windows phone中使用文本块

我正在绑一根任意长度的绳子。如果字符串长度超过两行,我只想显示两行,我想在第二行的末尾显示“…”

在这里,我不能使用长度,因为例如:“W”将占用更多空间,但像“i”这样更细的字符甚至可能达不到第二行。所以我不能用这里的长度

我看到了TextTrimming=“WordEllipsis”,但它在一个单词后显示省略号。若第二行的最后一个字太大,那个么最后一个字将被删除


因此,请告诉我如何才能找到Textblock的行数。

您需要的是texttiming=“CharacterEllipsis”

要么自己动手:


或者等待几周:

不幸的是,在windows phone中,textwrappin和texttriming不能同时工作,因此我在这里使用textblock loaded事件,在c#中,需要3个文本块来满足您的要求

在您的xaml中

 <TextBlock Grid.Row="1" Text=""  Margin="20,0,0,0" VerticalAlignment="Top"  MaxHeight="60" Foreground="#F97E7F81"  FontFamily="Segoe WP"  FontSize="18" Width="430" FontWeight="Bold" Loaded="desc" />

祝你度过愉快的一天。

另一种不设置省略号的方法是在值转换器内的另一个上下文中以增量方式呈现文本(或文本块的副本),找到适合您可用区域的正确宽度/高度等,然后返回该文本(或者像少2-3个字符,自己多加一个省略号)


我绝对不推荐这种方法,这绝对不是一种最佳的方法,但如果没有其他合适的答案,这应该适用于简单的情况。

这不是Windows 8(Windows应用商店)的问题。哎哟。正确的。所以等待是没有意义的。但是,覆盖内容控件的度量值应该有效。
        TextBlock tb = (TextBlock)sender;
        TextBlock tb1=new TextBlock();
        tb1.Text = tb.Text;
        tb1.TextWrapping = TextWrapping.Wrap;
        tb1.Width = 435;
        tb1.Height = 75;
        TextBlock tb2 = new TextBlock();
        tb2.Text = tb1.Text;
        tb2.Height = 75;
        tb2.TextWrapping = TextWrapping.Wrap;
        tb2.Width = 435;
        tb.Text = tb2.Text;
        tb.TextTrimming = TextTrimming.WordEllipsis;
        tb.TextWrapping = TextWrapping.Wrap;
    }