WPF缩放文本仅适用于太大的情况

时间:2013-08-05 23:29:48

标签: c# wpf scale truncate

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

如何强制文本保持正常大小,除非太大而不适合...在这种情况下缩小以适应?

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

IE:这不是我想要的:

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

这使得当太小时,一切都会扩大,而当太大时,一切都会缩小。我只希望它在太大的时候缩小,而在太小时不要扩大......

有什么想法吗?

1 个答案:

答案 0 :(得分:23)

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

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