Как обрабатывать, когда страница имеет много GridView / ListView по вертикали в UWP - PullRequest
0 голосов
/ 02 июля 2019

Если на странице много GridView / ListViews по вертикали, мы должны использовать ScrollViewer для прокрутки вверх / вниз.Но ScrollViewer уничтожит виртуализацию пользовательского интерфейса GridView / ListView, что приведет к огромному использованию процессора и памяти.

Но uwp не предоставляет чистый ScrollViewer, который просто прокручивает вверх / вниз/ left / right и не разрушает виртуализацию пользовательского интерфейса GridView / ListView.

Так, как справиться с этой ситуацией?

1 Ответ

0 голосов
/ 02 июля 2019

Но ScrollViewer разрушит виртуализацию пользовательского интерфейса GridView / ListView, что приводит к огромному использованию процессора и памяти.

Есть много способов подойти, Вы можете создать Pivot для размещения каждого GridView. и использовать данные подкачки для уменьшения использования памяти и процессора.

<Pivot Title="EMAIL">
    <PivotItem Header="All">
        <TextBlock Text="all emails go here." />
    </PivotItem>
    <PivotItem Header="Unread">
        <TextBlock Text="unread emails go here." />
    </PivotItem>
    <PivotItem Header="Flagged">
        <TextBlock Text="flagged emails go here." />
    </PivotItem>
    <PivotItem Header="Urgent">
        <TextBlock Text="urgent emails go here." />
    </PivotItem>
</Pivot>

И вы также используете Blade, который входит в пакет nuget Community Tool Kit. Основываясь на своей модели данных, создайте несколько блейдов, в которых размещаются GridView или ListView.

<controls:BladeItem x:Name="SecondBlade"
                          Header="Default blade"
                          IsOpen="False"
                          Style="{StaticResource BladeStyle}">
        <TextBlock Margin="24"
                   HorizontalAlignment="Center"
                   VerticalAlignment="Center"
                   Style="{StaticResource SubtitleTextBlockStyle}"
                   Text="This is a blade with all settings set to default." />
</controls:BladeItem>

Подробнее см. В этом документе .

...