2

我有带有 WrapGrid 的 GridView 作为 ItemTemplate。看起来像:

<GridView ItemsSource={Binding MyItemSource}>
    <GridView.ItemTemplate>
        <DataTemplate>
             <Image Width="250" Height="250">
                  <Image.Source>
                       <BitmapImage UriSource="{Binding }" DecodePixelWidth=250/>
                  </Image.Source>
             </Image>
        </DataTemplate>
     </GridView.ItemTemplate>

     <GridView.ItemsPanel>
          <ItemsPanelTemplate>
               <WrapGrid/>
           </ItemsPanelTemplate>
     </GridView.ItemsPanel>
</GridView>

MyItemSource 包含 Uri 到图像文件(很多 Uri)。由于虚拟化过程,它在没有 OutOfMemoryException 的情况下工作。但是,当我决定滚动“快速而遥远”时,对于滚动区域中“介于”的图像,会有很多不必要的加载工作。(大量不必要的 cpu、磁盘和内存使用)我想在用户不滚动时开始加载过程(当用户停止滚动时,不加载滚动时只看到片刻的图像)。可能吗 ?

4

1 回答 1

1

如果您使用的是 Windows 8.1,您可以利用 ContainerContentChanging 事件并控制在什么时间渲染什么。

于 2013-09-24T22:43:14.487 回答