在WinUI-3中,我创建了Shimmer控件结构,用于使用椭圆和矩形。
<Style x:Key="ShimmerStyle" TargetType="local:Shimmer" >
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Fill" Value="{ThemeResource ShimmerFillColor}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:Shimmer">
<StackPanel>
<Grid x:Name="Grid1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Ellipse x:Name="Eli" Grid.Row="0" Grid.Column="0" Height="200" Width="200" Fill="{TemplateBinding Fill}" HorizontalAlignment="Left">
</Ellipse>
<Rectangle x:Name="Rect" Margin="40,30,50,100" Grid.Row="0" Grid.Column="1" Height="60" Width="800" Fill="{TemplateBinding Fill}" Opacity="0.8" />
<Rectangle x:Name="Rect1" Grid.Row="0" Grid.Column="1" Margin="40,90,0,0" Height="60" Width="300" Fill="{TemplateBinding Fill}" HorizontalAlignment="Left"/>
</Grid>
<Grid x:Name="Grid2" >
<ContentControl >
<ContentPresenter Content="{TemplateBinding Content}"/>
</ContentControl>
</Grid>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style BasedOn="{StaticResource ShimmerStyle}" TargetType="local:Shimmer"/>
在我的Shimmer类中,我已经创建了WaveColor和WaveDirection以及AnimationDuration属性。我已经实现了Fill,IsActive和Content属性。当IsActive属性为true时。在我的Shimmer控件中显示。当IsActive属性为www.example.com时,false.myShimmer控件被隐藏并且它显示了content属性。
如何在WinUI-3中为我的Shimmer控件创建波浪动画?请帮助我
我试着用VisualStateGroup在XAML端用Storyboard动画代码。但是我不能创建它。
1条答案
按热度按时间zlwx9yxi1#
如何在WinUI-3C #中的shimmer控件中创建波浪动画?
你有很多方法来实现这样的动画,第一个示例方法是使用
ColorAnimation
和DoubleAnimation
为LinearGradientBrush
GradientStopOffset
和Color
属性做动画用法
代码隐藏
第二个完整的方法是Using lights in Windows UI,你可以参考official code sample来制作你自己的灯光动画。