【发布时间】:2020-09-16 00:31:30
【问题描述】:
我正在尝试自动缩放字体并将文本换行在 WPF 中的 TextBlock 中,但我无法弄清楚。
我在 Google 上搜索过它并查看了很多次 stackoverflow 负载,主要建议是将 TextBlock 放置在 ViewBox 内。我试过了,它所做的只是将整个文本缩小到一行而不是换行。
如果我只使用没有 ViewBox 的 TextBlock,它会包装,但不会缩放以适应。这让我发疯了,因为我实际上是在尝试从 WinForms 迁移到 WPF 以制作更好看的 UI。
我已经尝试过 StackPanel 和 DockPanel,但它们仍然没有达到预期的效果。
我想要的只是一个 TextBlock 来获取一串大小未知的文本,然后将其缩放和包装显示。我不明白为什么这么难
【问题讨论】:
-
您可以发布您已经尝试过的代码吗?特别是将整个文本缩小到一行的意思
-
您的 TextBlock 中有
TextWrapping="Wrap"吗? ViewBoxStretch属性设置为什么?而 TextBlockWidth和Height?请注意,在这种情况下,它们的含义与往常不同。 -
我有 TextWrapping="Wrap" (我也尝试将其更改为 WrapWithOverflow)。我玩过 ViewBox 的 Stretch 属性,尝试了“Fill”、“Uniform”、“UniformToFill”。我也尝试过改变宽度和高度。就像我说的那样,ViewBox 只是让文本变小,直到它都适合一行。并且 TextBlock 的换行不会缩放换行中的字体大小,
-
你不能用内置的控件来做到这一点,至少不能在控件大小上一致地工作。看到这个:stackoverflow.com/q/39792867/4265041
标签: wpf vb.net textblock viewbox