У меня есть пользовательский элемент управления (ниже), я связываю текст с источником данных и создаю кучу пользовательских элементов управления.
Я хочу, чтобы размер текста был максимально большим, и он все равно будет вписываться в границы элемента управления. В программировании 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>
[Я использую сетку для правильного центрирования текстового блока.]
Ответ был таким, как Рич описал использование 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>