【发布时间】:2019-04-19 23:53:43
【问题描述】:
我有一个文本块需要
- 以给定空间内可能的最大字体大小显示文本(字符越少,字母越大,反之亦然)
- 在给定的空间内换行。
我尝试在如下视图框中使用文本框,但如果我不指定文本块的宽度和高度,则文本换行不起作用。如果我确实将宽度和高度指定为与视图框相同的大小,则显然不会发生缩放。
<Viewbox Stretch="Fill" Width="100" Height="100">
<TextBlock TextWrapping="Wrap"/>
</Viewbox>
还有其他方法可以实现吗?或者我应该考虑编写一个算法来根据文本量手动增加字体大小? 任何帮助表示赞赏。
【问题讨论】:
-
您可以通过处理 PreviewKeyDown 或 PreviewKeyUp 事件手动进行换行,并检查是否达到了文本的长度限制。实现相同结果的另一种方法:创建一个自定义转换器并在那里进行换行。您可以传递参数或使用字段来指定 MaxLength。
标签: wpf zooming textblock word-wrap