wpf - 您如何让 Silverlight 调整文本内容的大小以适合?

标签 wpf silverlight silverlight-2.0 font-size

我有一个用户控件(如下),我将文本绑定(bind)到数据源并实例化了一堆用户控件。

我希望文本的大小尽可能大,仍然适合控件的范围。在 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>

[我在这里使用网格以使文本 block 正确居中。]

答案正如 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>

最佳答案

昨天有人问了一个类似的问题,关于根据容器大小自动调整内容大小。这种情况下的答案是一样的:使用 Viewbox。如果您将 TextBlock 放在 Viewbox 内,TextBlock 将自行调整大小以仅使用它需要的空间,并且 Viewbox 将处理将其拉伸(stretch)到容器的尺寸。使用拉伸(stretch)属性从四种拉伸(stretch)方法之一中进行选择。

看看昨天的这个帖子:

WPF Gui that changes size with window?

关于wpf - 您如何让 Silverlight 调整文本内容的大小以适合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734809/

相关文章:

Silverlight 5 向后兼容性

c# - 如何在 Silverlight 中将一个控件固定在另一个控件下方?

silverlight - 在 Silverlight 中获取 .png 像素数据

c# - 一个低开销的文件写入过程应该在它自己的线程上吗?

wpf - wnd.Show(Me) 无法在 WPF 中工作

c# - CPU性能控制WPF

使用自定义控件时 Silverlight 错误 "Layout Cycle Detected Layout could not complete"

wpf - 我应该用什么来替换 WinAPI Beep() 函数?

c# - 更新绑定(bind)到 dataSet dataTable 的 listView,它从 SQL c# wpf 中查找数据

c# - HtmlPage.Document.Cookies 为空