询问者
appbar上加载几百张图片,appbar打开速度慢

问题
-
我的appbar上放有一个gridview,加载了几百张图片。现在的问题是,每次弹出bar的时候,响应都有好几秒的延时,怎样消除这样的延时。
我的代码如下,由于我的需求,gridviewitemcontainer的大小是不一样的,所以只能用VariableSizedWrapGrid来实现。
每次弹出Appbar,这几百个container都要重新画,猜测时间耗在这个上面。请问有什么好的办法解决,或者appbar上的ui能不能缓存,让下一次弹出来的时候不用重新画?
<GridView Name="gridview_photos" ItemsSource="{Binding photoBinSource}" HorizontalAlignment="Left" Margin="0"
ItemContainerStyleSelector="{Binding Mode=OneWay, Source={StaticResource photoBinThumbStyleSelector}}" Padding="0"
CanDragItems="True" DragItemsStarting="DragItemStart" AllowDrop="True" Drop="drop" MaxWidth="760" VerticalAlignment="Center"><GridView.ItemTemplate>
<DataTemplate>
<Image Stretch="UniformToFill"
Source="{Binding image, Converter={StaticResource ThumbnailConverter}}"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid ItemHeight="72" ItemWidth="10" MaximumRowsOrColumns="1"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
全部回复
-
Hi,
一定要使用VariableSizedWrapGrid吗?这个是不支持虚拟化的,你可以试试VirtualizationStackPanel或者WrapGrid。
Aaron
MSDN Community Support | Feedback to us
Develop and promote your apps in Windows Store
Please remember to mark the replies as answers if they help and unmark them if they provide no help.- 已建议为答案 Min ZhuModerator 2012年12月27日 6:49
-
用WrapGrid和ItemContainerSelector可以实现不同尺寸的大小Item。而且还可以用虚拟化。
- 已建议为答案 Min ZhuModerator 2012年12月27日 6:49
- 取消建议作为答案 Aaron XueModerator 2013年1月7日 11:24