我有一个用户控件(如下图),我正在将文本绑定到数据源并实例化一堆用户控件。
我希望文本的大小尽可能大,但仍适合控件的边界。在Windows编程中,我可以通过减小字体大小来测量文本大小,直到它符合目标尺寸。
在Silverlight中有没有这样做的方法?
我知道我可能可以以类似的方式做到这一点,但是否有任何“更好”的方法来完成它呢?
<Grid x:Name="gdBubble" Width="180" Height="95">
<Ellipse x:Name="elBubble" Fill="#FFFFA300" />
<TextBlock x:Name="txtContent" Text="{ Binding ClientName }" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
[我在这里使用网格布局以使文本块正确居中。]
答案如Rich所描述的那样,使用Viewbox。
对于我来说,这是获胜的配置:
<Grid x:Name="gdBubble" Width="180" Height="95">
<Ellipse x:Name="elBubble" Fill="#FFFFA300" />
<controls:Viewbox Margin="10,10,10,10" VerticalAlignment="Stretch" Height="Auto">
<TextBlock x:Name="txtContent" FontSize="18" Text="{ Binding ClientName }" HorizontalAlignment="Center" VerticalAlignment="Center" />
</controls:Viewbox>
</Grid>