Как обрабатывать, когда на странице много GridView / ListView по вертикали в uwp

Когда на странице много _1 _ / _ 2_ по вертикали, мы должны использовать ScrollViewer для прокрутки вверх / вниз. Но ScrollViewer разрушит виртуализацию пользовательского интерфейса _5 _ / _ 6_, что приведет к огромному использованию ЦП и памяти.

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

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


person Vincent    schedule 02.07.2019    source источник
comment
Случай 2: 1-й, страница имеет _1 _ / _ 2_, каждый шаблон ListViewItem является _4 _ / _ 5_, как макет NetFlix. Во-вторых, просто много _6 _ / _ 7_ макетов на одной странице.   -  person Vincent    schedule 02.07.2019


Ответы (1)


Но 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. Основываясь на вашей модели данных, создайте несколько Blade, на которых размещаются 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>

Для получения дополнительной информации обратитесь к этому документ.

person Nico Zhu - MSFT    schedule 02.07.2019