wp7 - TextBlock with a lot of text - huge memory usage - how to avoid it?

后端 未结 3 1057
小蘑菇
小蘑菇 2020-12-19 21:42

I have a problem in my app and I don\'t know if it is normal or not. I have a textblock in my application that needs to display a large amount of text (2000-4000 chars). Any

3条回答
  •  离开以前
    2020-12-19 22:09

    I came across similar issues when creating Overflow7

    The problems I encountered were to do with the fact that if you use a StackPanel inside a ScrollViewer, then the ScrollViewer insists that all of the StackPanel is rendered, not just the visible portion.

    I read around and there were 2 general solutions:

    • use UI virtualization techniques - e.g. VirtualizingStackPanel
    • use data virtualization techniques - e.g. crafting your own paging

    To get round this in Overflow7 I made use of ListBoxes instead of the ScrollViewer/StackPanel combo. The internals part of ListBox use a VirtualizingStackPanel - and this VirtualizingStackPanel renders just whats on the screen, not the entire scrollable client area.

    This was a bit "hacky" but worked well. If you have time, then I believe a better solution would be to improve the ScrollableTextBlock implementation so that it uses VirtualizingStackPanel - there are good posts about how to use this on (for example) WPF VirtualizingStackPanel for increased performance

提交回复
热议问题