2

私は ItemTemplate として WrapGrid を持つ GridView を持っています。次のようになります。

<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 に答える