I have a textblock which needs to
- show text in the maximum font size possible within the given space (less characters bigger letters and vice-versa)
- 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;
精彩评论