I was working on an application earlier today when I ran into a serious problem.
I needed an info page with a scrollable TextBlock, because I had to add a lot of text. Obviously I started with something like that:
<ScrollViewer> <TextBlock /> </ScrollViewer>
But when I added my text, the result was like this:
My TextBlock did not display the entire text. The ScrollViewer though was working fine. I could scroll further, where the text was supposed to be.
The reason is quite simple actually. There is a 2048 pixel limitation for UI controls. For a TextBlock the way to work around is splitting the text into smaller TextBlocks and stacking them in a StackPanel.
Alex Yakhnin created a control that does this automatically. You can find it here.
In order to use that control, there are a few steps needed:
- Add Alex Yakhnin’s Phone.Controls project (Phone.Controls.csproj) to your solution.
- Add the Phone.Controls project to the References in your project.
- Build the Phone.Controls project.
- In MainPage.xaml of your project add this to the header:
- Now you can add a ScrollableTextBlock control to your page that just works:
Make sure to check out Alex Yakhnin’s Blog for more information.
To be continued…