【发布时间】:2018-06-05 23:48:57
【问题描述】:
我有一个具有固定大小和可变文本的 TextBlock。我希望我的文本始终适合 TextBlock(没有省略号或溢出,但有自动换行)。如果文本发生更改,则应调整字体大小以使文本适合 TextBlock 的边界。
我知道我可以将 TextBlock 打包到 Viewbox 中(我目前正在这样做),但我没有自动换行。
上图显示了三个不同的文本块(蓝色数字仅用于说明)。如果我使用 Viewbox,我会得到类似于 1 和 2 的结果,但我更想要类似于 1 和 3 的结果。
所以我基本上是在尝试将 Viewbox 和自动换行结合起来。如何才能做到这一点?
【问题讨论】:
-
您可以使用TextWrapping 属性来获取包装行为。
-
@pstrjds 不幸的是没有。如果我的 TextBlock 位于 Viewbox 中(以实现不同的字体大小),则 Textblock 具有(理论上的)无限空间,因此不会进行换行,因为文本适合单行。
-
我的误会。在第一次阅读您的问题时,我以为您想摆脱
Viewbox,在重新阅读时,我看到您想保留它。 -
@pstrjds 不一定。如果我同时获得这两个功能(换行和最大字体大小),我就不需要 Viewbox。我只是用它来提供可调整的字体大小。
-
我认为你可以摆脱
Viewbox,如果你结合包装和这个问题的答案来检测文本何时被修剪,然后调整字体直到它不再被修剪 - stackoverflow.com/a/25436070/416574