選択したカテゴリのアイテムのリストを表示するScrollViewer
Silverlight クライアントを使用しています。アイテムを選択するとサイズが変わります。通常の状況ではScrollViewer
問題なく動作しますが、1 つのカテゴリには 300 近くのアイテムがあります。このカテゴリを選択するScrollViewer
と、ほとんど使用できなくなります。リスト内のすべてをレンダリングしていますか? 高速化する方法はありますか?
1 に答える
0
私は役立つかもしれない解決策を見つけました:
<!-- This needs to be contained in a parent panel like a grid -->
<ListBox x:Name="Items" >
<ListBox.Template>
<ControlTemplate> <!-- Broke it out to allow resizing -->
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<ItemsPresenter/> <!-- This little fella does magical things -->
</ScrollViewer>
</ControlTemplate>
</ListBox.Template>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel VirtualizingStackPanel.VirtualizationMode="Recycling"/> <!-- Recycle was a must -->
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<HyperlinkButton VerticalAlignment="Top" Margin="5" />
<!-- This guy I did need to set a minwidth on to retain nice and predictable scrolling when datacontext was potentially changing -->
<ContentControl cal:View.Model="{Binding}" MinWidth="1160" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
于 2013-01-03T04:16:07.010 に答える