WPF如何将文本适应TextBlock而不溢出

5
我有一个具有固定大小和可变文本的TextBlock。我希望我的文本始终适合TextBlock(不带省略号或溢出,但带换行)。如果文本更改,则应调整字体大小,以使文本适合TextBlock的边界。
我知道我可以将TextBlock打包到Viewbox中(目前正在执行此操作),但是那样我就没有换行了。

上面的图片显示了三个不同的TextBlocks(蓝色数字仅用于说明)。如果我使用Viewbox,我会得到类似于1和2的结果,但我更想要类似于1和3的结果。
所以,我基本上是在尝试结合Viewbox和自动换行。这该怎么做呢?

你可以使用TextWrapping属性来获取文本换行的行为。 - pstrjds
很遗憾,如果我的TextBlock在Viewbox中(以实现不同的字体大小),则Textblock具有(理论上)无限的空间,因此换行不会启动,因为文本适合单行。 - Timo
我误解了。一开始看到你的问题时,我以为你想要摆脱 Viewbox,但再次阅读后,我发现你想要保留它。 - pstrjds
@pstrjds 不一定。如果我同时获得换行和最大字体大小两个功能,我就不需要Viewbox了。我只是用它来提供可调整的字体大小。 - Timo
我认为,如果您结合这个问题的包装和答案来检测文本何时被修剪,然后调整字体直到它不再被修剪,就可以摆脱Viewbox。- https://dev59.com/QHNA5IYBdhLWcg3wPLP-#25436070 - pstrjds
1个回答

1
如果您将视口扩展限制在一个维度上,那么您仍然可以拥有包裹和接近 #3 的效果。请尝试使用 answer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接