improve achievement & gachalog large dataset load speed

This commit is contained in:
Lightczx
2023-08-31 10:23:25 +08:00
parent 4e0d83726e
commit d90ce0afe0
4 changed files with 212 additions and 201 deletions

View File

@@ -20,7 +20,7 @@
<shvconv:Int32ToGradientColorConverter x:Key="Int32ToGradientColorConverter" MaximumValue="{Binding GuaranteeOrangeThreshold}"/>
<DataTemplate x:Key="OrangeListTemplate" d:DataType="shvg:SummaryItem">
<Grid Margin="0,4,0,0" Style="{StaticResource BorderGridStyle}">
<Grid Margin="0" Style="{StaticResource BorderGridStyle}">
<ToolTipService.ToolTip>
<TextBlock Text="{Binding TimeFormatted}"/>
</ToolTipService.ToolTip>
@@ -84,12 +84,10 @@
TrueValue="{ThemeResource CardBackgroundFillColorDefaultBrush}"/>
<DataTemplate x:Key="OrangeGridTemplate" d:DataType="shvg:SummaryItem">
<Border
Margin="0,4,4,0"
<shvcont:BottomTextSmallControl
Background="{Binding IsUp, Converter={StaticResource BoolToBrushConverter}}"
Style="{StaticResource BorderCardStyle}"
Text="{Binding LastPull}"
ToolTipService.ToolTip="{Binding TimeFormatted}">
<shvcont:BottomTextSmallControl Text="{Binding LastPull}">
<shvcont:BottomTextSmallControl.Foreground>
<SolidColorBrush Color="{Binding Color}"/>
</shvcont:BottomTextSmallControl.Foreground>
@@ -98,7 +96,6 @@
Icon="{Binding Icon}"
Quality="{Binding Quality}"/>
</shvcont:BottomTextSmallControl>
</Border>
</DataTemplate>
</UserControl.Resources>
@@ -329,28 +326,45 @@
</StackPanel>
</Expander>
<ScrollViewer
<cwc:SwitchPresenter
Grid.Row="2"
Margin="12,6,12,12"
VerticalScrollBarVisibility="Hidden">
<cwc:SwitchPresenter Value="{Binding ElementName=ItemsPanelSelector, Path=Current}">
Value="{Binding ElementName=ItemsPanelSelector, Path=Current}">
<cwc:SwitchPresenter.ContentTransitions>
<TransitionCollection>
<ContentThemeTransition/>
</TransitionCollection>
</cwc:SwitchPresenter.ContentTransitions>
<cwc:Case Value="List">
<ItemsControl ItemTemplate="{StaticResource OrangeListTemplate}" ItemsSource="{Binding OrangeList}"/>
<ListView
ItemTemplate="{StaticResource OrangeListTemplate}"
ItemsSource="{Binding OrangeList}"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
SelectionMode="None">
<ListView.ItemContainerStyle>
<Style BasedOn="{StaticResource DefaultListViewItemStyle}" TargetType="ListViewItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0,4,0,0"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</cwc:Case>
<cwc:Case Value="Grid">
<ItemsControl
<GridView
Margin="0,0,-4,0"
ItemTemplate="{StaticResource OrangeGridTemplate}"
ItemsPanel="{StaticResource WrapPanelTemplate}"
ItemsSource="{Binding OrangeList}"/>
ItemsSource="{Binding OrangeList}"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
SelectionMode="None">
<GridView.ItemContainerStyle>
<Style BasedOn="{StaticResource DefaultGridViewItemStyle}" TargetType="GridViewItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0,0,2,4"/>
</Style>
</GridView.ItemContainerStyle>
</GridView>
</cwc:Case>
</cwc:SwitchPresenter>
</ScrollViewer>
</Grid>
</Border>
</UserControl>

View File

@@ -131,7 +131,7 @@
DisplayMode="Inline"
IsPaneOpen="True"
OpenPaneLength="{StaticResource CompatSplitViewOpenPaneLength2}"
PaneBackground="Transparent">
PaneBackground="{x:Null}">
<SplitView.Pane>
<ListView
ItemsSource="{Binding AchievementGoals}"
@@ -177,20 +177,21 @@
</SplitView.Pane>
<SplitView.Content>
<ScrollViewer Padding="0,0,8,0">
<ItemsControl
Margin="8,0,0,16"
ItemsPanel="{StaticResource ItemsStackPanelTemplate}"
ItemsSource="{Binding Achievements}">
<ItemsControl.ItemContainerTransitions>
<TransitionCollection>
<ContentThemeTransition/>
</TransitionCollection>
</ItemsControl.ItemContainerTransitions>
<ItemsControl.ItemTemplate>
<ListView
Margin="8,0,0,0"
Padding="0,0,0,8"
ItemsSource="{Binding Achievements}"
SelectionMode="None">
<ListView.ItemContainerStyle>
<Style BasedOn="{StaticResource DefaultListViewItemStyle}" TargetType="ListViewItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0,4,8,0"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Border
Margin="0,8,0,0"
Margin="0,4,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Style="{StaticResource BorderCardStyle}">
@@ -247,9 +248,8 @@
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</ListView.ItemTemplate>
</ListView>
</SplitView.Content>
</SplitView>
</cwuc:Case>

View File

@@ -22,7 +22,7 @@
<Page.Resources>
<DataTemplate x:Key="TeamItemTemplate" d:DataType="shvcom:Team">
<Border Margin="12,0,12,12" Style="{StaticResource BorderCardStyle}">
<Border Margin="0,0,0,8" Style="{StaticResource BorderCardStyle}">
<Grid Margin="6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
@@ -31,7 +31,7 @@
<ItemsControl HorizontalAlignment="Left" ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<cwuc:UniformGrid ColumnSpacing="6" Columns="4"/>
<StackPanel Orientation="Horizontal" Spacing="6"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
@@ -113,21 +113,19 @@
</Pivot.HeaderTemplate>
<Pivot.ItemTemplate>
<DataTemplate>
<ScrollViewer>
<GridView
Margin="16,16,6,-6"
Padding="16,16,4,0"
ItemContainerStyle="{StaticResource LargeGridViewItemStyle}"
ItemsSource="{Binding Avatars}"
SelectionMode="None">
<ItemsControl.ItemTemplate>
<GridView.ItemTemplate>
<DataTemplate>
<shvcon:BottomTextControl Text="{Binding Rate}">
<shvcon:ItemIcon Icon="{Binding Icon}" Quality="{Binding Quality}"/>
</shvcon:BottomTextControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</GridView.ItemTemplate>
</GridView>
</ScrollViewer>
</DataTemplate>
</Pivot.ItemTemplate>
</Pivot>
@@ -141,9 +139,8 @@
</Pivot.HeaderTemplate>
<Pivot.ItemTemplate>
<DataTemplate>
<ScrollViewer>
<GridView
Margin="16,16,6,-6"
Padding="16,16,4,0"
ItemContainerStyle="{StaticResource LargeGridViewItemStyle}"
ItemsSource="{Binding Avatars}"
SelectionMode="None">
@@ -155,7 +152,6 @@
</DataTemplate>
</ItemsControl.ItemTemplate>
</GridView>
</ScrollViewer>
</DataTemplate>
</Pivot.ItemTemplate>
</Pivot>
@@ -175,19 +171,20 @@
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Column="0" Margin="0,12,0,0">
<ItemsControl
<ListView
Grid.Column="0"
Margin="0,0,0,0"
Padding="0,8,0,0"
ItemTemplate="{StaticResource TeamItemTemplate}"
ItemsPanel="{StaticResource ItemsStackPanelTemplate}"
ItemsSource="{Binding Up}"/>
</ScrollViewer>
<ScrollViewer Grid.Column="1" Margin="0,12,0,0">
<ItemsControl
ItemsSource="{Binding Up}"
SelectionMode="None"/>
<ListView
Grid.Column="1"
Margin="0,0,0,0"
Padding="0,8,0,0"
ItemTemplate="{StaticResource TeamItemTemplate}"
ItemsPanel="{StaticResource ItemsStackPanelTemplate}"
ItemsSource="{Binding Down}"/>
</ScrollViewer>
ItemsSource="{Binding Down}"
SelectionMode="None"/>
</Grid>
</DataTemplate>
</Pivot.ItemTemplate>
@@ -266,15 +263,16 @@
Style="{StaticResource CaptionTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewPageHutaoDatabaseOverviewConstellation6}"/>
</Grid>
<ScrollViewer Grid.Row="1">
<ItemsControl
Margin="0,0,0,8"
<ListView
Grid.Row="1"
Margin="0,0,4,0"
HorizontalContentAlignment="Stretch"
ItemsPanel="{StaticResource ItemsStackPanelTemplate}"
ItemsSource="{Binding AvatarConstellationInfos}">
ItemsSource="{Binding AvatarConstellationInfos}"
SelectionMode="None">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Margin="16,0,16,8" Style="{StaticResource BorderCardStyle}">
<Border Margin="0,0,0,8" Style="{StaticResource BorderCardStyle}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
@@ -316,8 +314,7 @@
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</ListView>
</Grid>
</PivotItem>
</Pivot>

View File

@@ -291,13 +291,13 @@
Margin="16,16,0,0"
ItemsSource="{Binding Selected.CultivationItemsView}"
SelectionMode="None">
<ItemsControl.ItemTemplate>
<GridView.ItemTemplate>
<DataTemplate>
<shvc:BottomTextControl Text="{Binding Name}">
<shvc:ItemIcon Icon="{Binding Icon, Converter={StaticResource ItemIconConverter}}" Quality="{Binding RankLevel}"/>
</shvc:BottomTextControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</GridView.ItemTemplate>
</GridView>
<TextBlock