【问题标题】:WPF scale text to fit only when too bigWPF 缩放文本以仅在太大时适合
【发布时间】:2026-02-21 15:55:02
【问题描述】:

我正在尝试在 WPF 中设置一个项目列表,其中包含随机长度的字符串(人名)。它们中的大多数通常都在一定的大小范围内,但偶尔你会遇到一个太长的字符串,以至于它超出了容器的范围。我通常会在它太长时将其截断,但我更愿意显示整个字符串。

如何强制文本保持正常大小,除非太大而无法容纳...在这种情况下将其缩小以适应?

注意:这与缩放所有文本以适应特定大小不同,后者是使用围绕文本的视图框完成的

IE:这不是我想要的:

<Viewbox MaxWidth="100">
    <TextBlock Text="{Binding EmployeeDisplayName, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Viewbox>

这使得一切都在太小时按比例放大,在太大时按比例缩小。我只希望它在太大时缩小,而在太小时从不放大......

有什么想法吗?

【问题讨论】:

标签: c# wpf scale truncate


【解决方案1】:

使用Viewbox,但将其StretchDirection 属性设置为DownOnly

<Viewbox MaxWidth="100" StretchDirection="DownOnly">
    <TextBlock Text="{Binding EmployeeDisplayName, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Viewbox>

【讨论】:

  • 正是我想要的。伙计,我在谷歌上根本找不到这个,多么简单的修复哈哈。我认为 WPF 的人在某个时候考虑过这个问题......谢谢