在WPF中,我使用Viewbox使一些文本自动调整大小。问题是文本最终会出现不同的字体,因为较短的文字会显得更大。
<Grid>
<!--grid definitions-->
<TextBlock Text="short text" Grid.Row="1" Grid.Column="0" x:Name="tb2" FontSize="{Binding ElementName=tb3, Path=FontSize}"/> <--HERE
<Viewbox Grid.Column="0" Grid.Row="2">
<TextBlock Text="looooong text" x:Name="tb3" Style="{StaticResource txtNormal}"/>
</Viewbox>
</Grid>
在“HERE”标记的行中,我尝试将一个TextBlcok
的字体大小绑定到另一个,但它不起作用。我也尝试过使用StretchDirection="DownOnly"
;虽然这确实使它们的尺寸相同,但也小得多。我还看到了this post并尝试将Viewbox
放在Grid
之外,但这会混淆ColumnDefinition
中定义的列宽比。
那么如何使不同Viewbox
的文本大小相同?谢谢!
答案 0 :(得分:5)
将另一个TextBlock(短文本)放在ViewBox中,并将ViewBox MaxHeight绑定到另一个ViewBox的ActualHeight(长文本)。
<Viewbox MaxHeight="{Binding ElementName=vb, Path=ActualHeight}">
<TextBlock Text="short text" Grid.Row="0" Grid.Column="0" x:Name="tb2" />
</Viewbox>
<Viewbox Name="vb" Grid.Column="0" Grid.Row="1">
<TextBlock Text="looooooooooong text" x:Name="tb3"/>
</Viewbox>