xaml – Wrap TextBlock的最大行数

我有一个TextBlock,具有以下设置:
textwrapping="Wrap"

我可以确定最大行数吗?

例如考虑以下字符串TextBlock.Text:

This is a very good horse under the blackboard!!

它目前已经显示如下:

This is a very 
good horse under 
the blackboard!!

我需要这样做:

This is a very 
good horse ...

任何解决方案?

如果您有一个特定的LineHeight,您可以计算TextBlock的最大高度。

例:

TextBlock最多3行

<TextBlock 
  Width="300"
  textwrapping="Wrap" 
  TextTrimming="WordEllipsis" 
  FontSize="24" 
  LinestackingStrategy="BlockLineHeight"
  LineHeight="28"
  MaxHeight="84">YOUR TEXT</TextBlock>

这就是让你的需求工作所需要的。

如何动态地做这个?

只需在C#/ VB.NET中创建一个扩展TextBlock并给它一个新的DependencyProperty int MaxLines的新控件。
然后覆盖OnApplyTemplate()方法,并根据LineHeight * MaxLines设置MaxHeight。

这只是一个关于如何解决这个问题的基本解释!

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...