【问题标题】:WPF fit text to TextBlock without overflowWPF使文本适合TextBlock而不会溢出
【发布时间】: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

标签: c# wpf xaml


【解决方案1】:

如果您将视图框扩展限制为一维,那么您仍然可以进行环绕和接近 #3 的内容。试试这个answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-24
    • 2015-02-21
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    相关资源
    最近更新 更多