我有一个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。
这只是一个关于如何解决这个问题的基本解释!