Нужно показать большое количество текста на экране Windows Phone 7 - PullRequest
2 голосов
/ 26 марта 2011

У меня есть около 800 КБ текста, который я хочу отобразить на экране. Может кто-нибудь сообщить мне возможное решение этой проблемы?

Из-за ограничения текстового блока 2048X2048 я уже пытался разбить текст на несколько текстовых блоков, а также пробовал http://blogs.msdn.com/b/priozersk/archive/2010/09/08/creating-scrollable-textblock-for-wp7.aspx. Это, хотя и работает для данных размером от 40 до 50 КБ, но не масштабируется до размера 800 КБ .

Я также пытался использовать Listbox (как упомянуто в первом решении в посте ниже). wp7 - TextBlock с большим количеством текста - огромное использование памяти - как этого избежать?

Это (показано ниже) также работает до 80-100 КБ, и после этого загрузка текста занимает слишком много времени.

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <ListBox x:Name="myListBox" Width="468" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <toolkit:WrapPanel />
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock FontSize="20" Text="{Binding}" TextWrapping="Wrap" />
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Grid>

Ответы [ 2 ]

2 голосов
/ 26 марта 2011

В Overflow7 Я использую метод ListBox с текстом - но я согласен, что иногда загрузка может занять много времени.

В Iron7 , я используюHTML-страница отображается в элементе управления WebBrowser.

Еще одно предложение: если у вас много текста, вы можете посмотреть, как Kindle отображает текст - Какой элемент управления используется в Kindle для Windows Phone 7

1 голос
/ 27 августа 2013

Я знаю, что это старый вопрос, однако я хотел добавить еще одно решение.

http://blogs.msdn.com/b/stankovski/archive/2013/08/27/yet-another-scrollable-textblock-for-windows-phone.aspx

Чтобы выполнить мою задачу, я инкапсулировал логику «расщепления» в отдельный класс, который создает выходные данные в виде списка строк.Затем вы можете связать этот список с вашим любимым элементом управления ListBox и вуаля, у вас есть огромный текстовый блок.Логика разделения оптимизирована для повышения производительности, поэтому вы получите намного лучшее время обработки, чем ScrollableTextBlock от Alex.Кроме того, поскольку вы можете привязать список к любому элементу управления ListBox, поддерживающему виртуализацию, у вас будет гораздо более консервативный объем памяти.

...