C# Windows 8.1应用程序:识别应用了换行、最大行数或最大高度的TextBlock的UI文本截断

C# Windows 8.1应用程序:识别应用了换行、最大行数或最大高度的TextBlock的UI文本截断,c#,xaml,windows-8,desktop,C#,Xaml,Windows 8,Desktop,我需要确定文本是否在应用wrap的情况下在UI中以编程方式被截断,前提是不应用单词trimming 这是一个使用xaml,c#的8.1桌面应用程序 这是一个多国应用程序,文本长度是动态的。下面是TextBlock的示例 <TextBlock Text="{StaticResource Title}" FontSize="34" Maxwidth="230" Margin="0,20,0,0" TextWrapping="Wrap" Maxlines="3"/>

我需要确定文本是否在应用wrap的情况下在UI中以编程方式被截断,前提是不应用单词trimming

这是一个使用xaml,c#的8.1桌面应用程序

这是一个多国应用程序,文本长度是动态的。下面是
TextBlock
的示例

<TextBlock Text="{StaticResource Title}" FontSize="34" Maxwidth="230" Margin="0,20,0,0" 
           TextWrapping="Wrap" Maxlines="3"/> 

在上述评论的帮助下,我终于找到了答案。以下是步骤:

  • 识别应用上述约束的文本块的高度/宽度
  • 然后移除约束并使用
    [TextBlock].measure测量高度/宽度(新大小(Double.PositiveInfinity,Double.PositiveInfinity))
  • 比较上一个和当前的高度/宽度。如果当前宽度/高度大于约束宽度/高度,则文本将被截断

  • 那么,您是否需要测量文本以查看它是否会溢出TextBlock的边界?是的,您是正确的。请参阅Class.hi@Jimi这仅适用于WPF应用程序,这是windows 8.1应用程序。不可能你是说UWP应用程序吗?你知道,
    TextBlock
    。。。参见方法。(例如,
    [TextBlock].Measure(新大小(Double.PositiveInfinity,Double.PositiveInfinity));
    。然后,代替(例如,
    GetPreferredSize()
    )读取。