2011-03-26 122 views
2

我有大約800 KB的文本,我想要在屏幕上顯示。有人可以讓我知道可能的解決方案嗎?需要在windows phone 7屏幕上顯示大量的文本

由於2048X2048文本塊的限制,我已經嘗試將文本拆分爲多個文本塊,並嘗試使用http://blogs.msdn.com/b/priozersk/archive/2010/09/08/creating-scrollable-textblock-for-wp7.aspx。這雖然適用於40到50 KB的數據,但不能擴展到800 KB的大小。

我也試過使用Listbox(如下面的帖子中提到的第一個soluion)。 wp7 - TextBlock with a lot of text - huge memory usage - how to avoid it?

這個(下面顯示的)也可以工作到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> 
+1

爲了感覺到向用戶顯示巨大文本並不是一個好主意,我已經開始向用戶顯示一定數量的textBlocks(在本例中爲50)。當用戶在50個文本塊之後按下某個按鈕時,下一個50個文本塊將會更新相同的頁面。雖然不是最好的解決方案,但我對此很滿意 – abnvp 2011-03-28 16:54:22

回答

1

我知道這是一個老問題,但是我想補充一個解決方案。

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

要完成我的任務我都封裝在「分裂」成邏輯產生的輸出字符串列表的單獨的類。然後,您可以將該列表綁定到您最喜歡的ListBox控件,並且瞧,你有一個巨大的文本塊。分離邏輯已經針對性能進行了優化,因此您可以通過Alex獲得比ScrollableTextBlock更好的處理時間。此外,由於您可以將列表綁定到任何支持虛擬化的ListBox控件,因此您將擁有更保守的內存佔用空間。

相關問題