微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

wpf – Silverlight如何调整大小的文本内容适合?

我有一个用户控件(下面),我将文本绑定到一个数据源,并实现了一大堆用户控件。

我想要文本的大小是仍然适合控件边界的最大可能。在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" VerticalAlignment="Stretch" Height="Auto">
        <TextBlock x:Name="txtContent" FontSize="18" Text="{ Binding ClientName }" HorizontalAlignment="Center" VerticalAlignment="Center" />
    </controls:ViewBox>
</Grid>

解决方法

昨天有一个类似的问题,关于相对于容器的大小自动调整内容大小。在这种情况下的答案是一样的:使用一个ViewBox。如果将TextBlock放在ViewBox中,则TextBlock将自动调整大小,只能使用它所需的空间,而ViewBox将会将其扩展到容器的尺寸。使用拉伸属性从四种拉伸方法之一进行选择。

从昨天看一下这个线程:

WPF Gui that changes size with window?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐