【问题标题】:Trying to wrap and scale text in a textblock WPF尝试在文本块 WPF 中换行和缩放文本
【发布时间】:2020-09-16 00:31:30
【问题描述】:

我正在尝试自动缩放字体并将文本换行在 WPF 中的 TextBlock 中,但我无法弄清楚。

我在 Google 上搜索过它并查看了很多次 stackoverflow 负载,主要建议是将 TextBlock 放置在 ViewBox 内。我试过了,它所做的只是将整个文本缩小到一行而不是换行。

如果我只使用没有 ViewBox 的 TextBlock,它会包装,但不会缩放以适应。这让我发疯了,因为我实际上是在尝试从 WinForms 迁移到 WPF 以制作更好看的 UI。

我已经尝试过 StackPanel 和 DockPanel,但它们仍然没有达到预期的效果。

我想要的只是一个 TextBlock 来获取一串大小未知的文本,然后将其缩放和包装显示。我不明白为什么这么难

【问题讨论】:

  • 您可以发布您已经尝试过的代码吗?特别是将整个文本缩小到一行的意思
  • 您的 TextBlock 中有 TextWrapping="Wrap" 吗? ViewBox Stretch 属性设置为什么?而 TextBlock WidthHeight?请注意,在这种情况下,它们的含义与往常不同。
  • 我有 TextWrapping="Wrap" (我也尝试将其更改为 WrapWithOverflow)。我玩过 ViewBox 的 Stretch 属性,尝试了“Fill”、“Uniform”、“UniformToFill”。我也尝试过改变宽度和高度。就像我说的那样,ViewBox 只是让文本变小,直到它都适合一行。并且 TextBlock 的换行不会缩放换行中的字体大小,
  • 你不能用内置的控件来做到这一点,至少不能在控件大小上一致地工作。看到这个:stackoverflow.com/q/39792867/4265041

标签: wpf vb.net textblock viewbox


【解决方案1】:

包含您尝试过的代码会很有帮助。

当我这样做时:

<Grid>
    <TextBox VerticalAlignment="Center" TextWrapping="Wrap"  Width="100"/>
</Grid>

我明白了:

这就是你要找的吗?

如果您需要更多功能,也可以查看RichTextBox

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2021-10-20
    相关资源
    最近更新 更多