开发者

WPF Textblock zoom and wrap

I have a textblock which needs to

  1. show text in the maximum font size possible within the given space (less characters bigger letters and vice-versa)
  2. wrap the text within the given space.

I tried using a textbox inside a viewbox like below but the text-wrapping doesn't work if i don'开发者_开发技巧t specify the textblock width and height. If i do specify the width and height to the same size as the viewbox, obviously zooming doesn't happen.

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

Is there any other way to acheive this? Or should i think about writing an algorithm to increase font size manually based on the amount of text? Any help is appreciated.


Try this code.

XAML:

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

Code behind:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜