WPF TextBlock масштабирование и перенос - PullRequest
6 голосов
/ 26 сентября 2010

У меня есть текстовый блок, который должен

  1. показывать текст с максимально возможным размером шрифта в пределах данного пространства (меньше букв, большие буквы и наоборот)
  2. перенос текстав пределах указанного пространства.

Я попытался использовать текстовое поле внутри окна просмотра, как показано ниже, но перенос текста не работает, если я не указываю ширину и высоту текстового блока.Если я укажу ширину и высоту того же размера, что и окно просмотра, очевидно, что масштабирование не произойдет.

<Viewbox Stretch="Fill" Width="100" Height="100">
<TextBlock TextWrapping="Wrap"/>
</Viewbox>

Есть ли другой способ добиться этого?Или я должен подумать о написании алгоритма для увеличения размера шрифта вручную в зависимости от объема текста?Любая помощь приветствуется.

1 Ответ

0 голосов
/ 15 ноября 2014

Попробуйте этот код.

XAML:

<TextBlock x:Name="textBlock"
           Text="Something text"
           TextWrapping="Wrap"
           FontSize="1"
           Width="100"
           Opacity="0" />

Код:

while (textBlock.ActualHeight <= 100)
{
    textBlock.FontSize += 0.1;
    textBlock.UpdateLayout();
}
textBlock.FontSize -= 0.1;
textBlock.Opacity = 1;
...