Можно ли использовать VirtualizingStackPanel в FlipView?

В настоящее время мой FlipView позволяет пользователю выбирать несколько изображений из локальной папки "Изображения", а затем отображать выбранные изображения в FlipView. Однако это будет работать, только если пользователь выберет небольшое количество картинок. Когда выбрано слишком много больших изображений, приложение вылетает. Я читал, что VirtualizingStackPanel хранит 3 изображения в памяти (до, текущее, после), так что не все изображения загружаются одновременно.

Это мой FlipView (отредактированный 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 ответ

Да, если вы используете VirtualizingStackPanel, он будет повторно использовать элементы, и если у вас не будет проблем с большими коллекциями данных. Попробуй это:

  <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>
Другие вопросы по тегам