是否可以在FlipView中使用VirtualizingStackPanel?

时间:2013-11-12 04:33:43

标签: c# xaml memory virtualizingstackpanel flipview

目前我的FlipView允许用户从本地图片文件夹中选择多张图片,然后在FlipView中显示所选图片。但是,它仅在用户选择少量图片时才有效。当选择太多大图像时,应用程序崩溃。我读到VirtualizingStackPanel将3个图像存储在内存中(之前,之后,之后),这样就不会立即加载所有图像。

这是我的FlipView(11月14日编辑)。

<FlipView x:Name="flpView" Grid.Row="1" Margin="10, 10, 10, 10">
        <FlipView.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </FlipView.ItemsPanel>

        <FlipView.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Image Source="{Binding}" Stretch="Uniform"/>
                </Grid>
            </DataTemplate>
        </FlipView.ItemTemplate>
    </FlipView>

1 个答案:

答案 0 :(得分:0)

是的,如果您使用VirtualizingStackPanel,它将重用Ítems,如果您不会遇到大数据集合的问题。试试这个:

  <FlipView HorizontalAlignment="Left" Height="464" Margin="718,288,0,0" VerticalAlignment="Top"  ItemsSource="{Binding YourSource}" ItemTemplate="{StaticResource ImageTemplate}">
        <FlipView.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel/>
            </ItemsPanelTemplate>
        </FlipView.ItemsPanel>
    </FlipView>