Silverlight 需要在windows phone 7屏幕上显示大量文本

Silverlight 需要在windows phone 7屏幕上显示大量文本,silverlight,windows-phone-7,textblock,Silverlight,Windows Phone 7,Textblock,我有大约800KB的文本要显示在屏幕上。有人能告诉我可能的解决办法吗 由于textblock的2048X2048限制,我已经尝试将文本拆分为多个textblock,并且也尝试了。这虽然适用于40到50KB的数据,但不能扩展到800KB的大小 我也尝试过使用Listbox(正如下面文章的第一个解决方案中提到的)。 这(如下所示)也可以工作到80-100KB,之后加载文本的时间太长 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,1

我有大约800KB的文本要显示在屏幕上。有人能告诉我可能的解决办法吗

由于textblock的2048X2048限制,我已经尝试将文本拆分为多个textblock,并且也尝试了。这虽然适用于40到50KB的数据,但不能扩展到800KB的大小

我也尝试过使用Listbox(正如下面文章的第一个解决方案中提到的)。

这(如下所示)也可以工作到80-100KB,之后加载文本的时间太长

<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>

在中,我对文本使用列表框方法,但我同意有时加载可能需要很长时间

在中,我使用WebBrowser控件中显示的HTML页面


另一个建议是,如果你有很多文本,那么你可以看看Kindle如何显示文本-

我知道这是一个老问题,但我想再添加一个解决方案


为了完成我的任务,我将“拆分”逻辑封装到一个单独的类中,该类以字符串列表的形式生成输出。然后,您可以将该列表绑定到您最喜欢的ListBox控件,瞧,您有一个ginormous文本块。分割逻辑已针对性能进行了优化,因此您将获得比Alex的ScrollableTextBlock更好的处理时间。此外,由于您可以将列表绑定到支持虚拟化的任何ListBox控件,因此您的内存占用会保守得多。

意识到立即向用户显示大量文本不是一个好主意,我开始向用户显示特定数量的文本块(在本例中为50个)。当用户在50个文本块之后按下某个按钮时,相同的页面将在接下来的50个文本块中更新。虽然这不是最好的解决方案,但我对此还行