mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
improve cachedimage performance
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
xmlns:cwcw="using:CommunityToolkit.WinUI.Controls"
|
xmlns:cwcw="using:CommunityToolkit.WinUI.Controls"
|
||||||
xmlns:cwuc="using:CommunityToolkit.WinUI.UI.Converters"
|
xmlns:cwuc="using:CommunityToolkit.WinUI.UI.Converters"
|
||||||
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
|
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
|
||||||
|
xmlns:shci="using:Snap.Hutao.Control.Image"
|
||||||
xmlns:shmmc="using:Snap.Hutao.Model.Metadata.Converter"
|
xmlns:shmmc="using:Snap.Hutao.Model.Metadata.Converter"
|
||||||
xmlns:shvc="using:Snap.Hutao.View.Converter">
|
xmlns:shvc="using:Snap.Hutao.View.Converter">
|
||||||
<Application.Resources>
|
<Application.Resources>
|
||||||
@@ -493,7 +494,83 @@
|
|||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
</Style>
|
</Style>
|
||||||
|
<Style TargetType="shci:CachedImage">
|
||||||
|
<Setter Property="Background" Value="Transparent"/>
|
||||||
|
<Setter Property="Foreground" Value="{ThemeResource ApplicationForegroundThemeBrush}"/>
|
||||||
|
<Setter Property="IsTabStop" Value="False"/>
|
||||||
|
<Setter Property="LazyLoadingThreshold" Value="300"/>
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="shci:CachedImage">
|
||||||
|
<Grid
|
||||||
|
Background="{TemplateBinding Background}"
|
||||||
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
|
CornerRadius="{TemplateBinding CornerRadius}">
|
||||||
|
<Image
|
||||||
|
Name="PlaceholderImage"
|
||||||
|
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
||||||
|
VerticalAlignment="{TemplateBinding VerticalAlignment}"
|
||||||
|
Opacity="1.0"
|
||||||
|
Source="{TemplateBinding PlaceholderSource}"
|
||||||
|
Stretch="{TemplateBinding PlaceholderStretch}"/>
|
||||||
|
<Image
|
||||||
|
Name="Image"
|
||||||
|
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
||||||
|
VerticalAlignment="{TemplateBinding VerticalAlignment}"
|
||||||
|
NineGrid="{TemplateBinding NineGrid}"
|
||||||
|
Opacity="0.0"
|
||||||
|
Stretch="{TemplateBinding Stretch}"/>
|
||||||
|
<VisualStateManager.VisualStateGroups>
|
||||||
|
<VisualStateGroup x:Name="CommonStates">
|
||||||
|
<VisualState x:Name="Failed">
|
||||||
|
<Storyboard>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Image" Storyboard.TargetProperty="Opacity">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="0"/>
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="PlaceholderImage" Storyboard.TargetProperty="Opacity">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="1"/>
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
<VisualState x:Name="Loading">
|
||||||
|
<Storyboard>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Image" Storyboard.TargetProperty="Opacity">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="0"/>
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="PlaceholderImage" Storyboard.TargetProperty="Opacity">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="1"/>
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
<VisualState x:Name="Loaded">
|
||||||
|
<Storyboard>
|
||||||
|
<DoubleAnimation
|
||||||
|
AutoReverse="False"
|
||||||
|
BeginTime="0"
|
||||||
|
Storyboard.TargetName="Image"
|
||||||
|
Storyboard.TargetProperty="Opacity"
|
||||||
|
From="0"
|
||||||
|
To="1"
|
||||||
|
Duration="0:0:0.5"/>
|
||||||
|
<DoubleAnimation
|
||||||
|
AutoReverse="False"
|
||||||
|
BeginTime="0"
|
||||||
|
Storyboard.TargetName="PlaceholderImage"
|
||||||
|
Storyboard.TargetProperty="Opacity"
|
||||||
|
From="1"
|
||||||
|
To="0"
|
||||||
|
Duration="0:0:0.5"/>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
<VisualState x:Name="Unloaded"/>
|
||||||
|
</VisualStateGroup>
|
||||||
|
</VisualStateManager.VisualStateGroups>
|
||||||
|
</Grid>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
<!-- ItemsPanelTemplate -->
|
<!-- ItemsPanelTemplate -->
|
||||||
<ItemsPanelTemplate x:Key="ItemsStackPanelTemplate">
|
<ItemsPanelTemplate x:Key="ItemsStackPanelTemplate">
|
||||||
<ItemsStackPanel/>
|
<ItemsStackPanel/>
|
||||||
|
|||||||
Reference in New Issue
Block a user