WPF Textblock缩放和换行

时间:2010-09-26 03:16:12

标签: wpf zoom textblock textwrapping

我有一个需要

的文本块
  1. 以给定空间内可能的最大字体大小显示文字(较大字母较大字母,反之亦然)
  2. 将文本包装在给定的空间内。
  3. 我尝试在下面的视图框中使用文本框,但如果我没有指定文本块的宽度和高度,则文本环绕不起作用。如果我指定宽度和高度与视图框大小相同,则显然不会进行缩放。

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

    还有其他方法可以实现这一目标吗?或者我应该考虑编写一个算法来根据文本的数量手动增加字体大小? 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

试试这段代码。

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;