【发布时间】:2010-10-18 14:25:34
【问题描述】:
我有一个用户控件(如下),我将文本绑定到数据源并实例化了一堆用户控件。
我希望文本的大小尽可能大,但仍适合控件的边界。在 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>
【问题讨论】:
-
我真的很惊讶没有发现其他人有这个问题。当然,任何与包含文本的动态数据源的数据绑定都有这个问题?文本块是否仅用于自定义按钮?
标签: wpf silverlight silverlight-2.0 font-size