WPF Textblock缩放和换行

Pra*_*apa 6 wpf zoom textblock word-wrap

我有一个需要的文本块

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

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

<Viewbox Stretch="Fill" Width="100" Height="100">
<TextBlock TextWrapping="Wrap"/>
</Viewbox>
Run Code Online (Sandbox Code Playgroud)

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

Vit*_*liy 0

试试这个代码。

XAML:

<TextBlock x:Name="textBlock"
           Text="Something text"
           TextWrapping="Wrap"
           FontSize="1"
           Width="100"
           Opacity="0" />
Run Code Online (Sandbox Code Playgroud)

背后代码:

while (textBlock.ActualHeight <= 100)
{
    textBlock.FontSize += 0.1;
    textBlock.UpdateLayout();
}
textBlock.FontSize -= 0.1;
textBlock.Opacity = 1;
Run Code Online (Sandbox Code Playgroud)