当页面垂直上有多个GridView
/ ListViews
时,我们必须使用ScrollViewer
来向上/向下滚动。但是ScrollViewer
将破坏GridView
/ ListView
的UI虚拟化,这会导致大量的CPU和内存使用。
但是uwp没有提供纯ScrollViewer,它只是向上/向下/向左/向右滚动,并且不会破坏GridView
/ ListView
的UI虚拟化。
那么如何处理这种缝合呢?
答案 0 :(得分:0)
但是ScrollViewer会破坏GridView / ListView的UI虚拟化,这会导致大量的cpu和内存使用。
有很多方法可以解决,您可以创建Pivot
来放置每个GridView
。并使用分页数据减少内存和CPU使用率。
<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>
您还可以使用社区工具包nuget软件包附带的Blade
。根据您的数据模型,创建多个放置GridView
或ListView
的Blade。
<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>
有关更多信息,请参阅此document。