WPF Textblock缩放和换行

问题描述 投票:6回答:1

我有一个需要的文本块

  1. 在给定空间内以最大字体大小显示文本(较大字符较大字母,反之亦然)
  2. 将文本包装在给定的空间内。

我尝试在下面的视图框中使用文本框,但如果我没有指定文本块的宽度和高度,则文本换行不起作用。如果我指定宽度和高度与视图框大小相同,显然不会进行缩放。

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

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

wpf zoom textblock textwrapping
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.