WPF XMAL一个圆形加载动画
时间: 2023-07-23 08:05:27 浏览: 163
你可以使用WPF的Storyboard和DoubleAnimation来创建一个圆形加载动画。以下是一个示例代码:
```xaml
<Grid>
<Ellipse x:Name="loadingCircle" Width="50" Height="50" Stroke="Gray" StrokeThickness="3" />
<Grid.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="loadingCircle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" From="1" To="0.2" Duration="0:0:1" RepeatBehavior="Forever" AutoReverse="True" />
<DoubleAnimation Storyboard.TargetName="loadingCircle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" From="1" To="0.2" Duration="0:0:1" RepeatBehavior="Forever" AutoReverse="True" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
<Ellipse.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" CenterX="25" CenterY="25" />
</TransformGroup>
</Ellipse.RenderTransform>
</Grid>
```
在这个示例中,我们使用一个Ellipse元素作为加载圆圈,并使用Stroke属性设置圆圈的边框颜色和Thickness属性设置边框宽度。我们还使用了Ellipse的RenderTransform属性来创建一个TransformGroup,其中包含一个ScaleTransform用于缩放圆圈。
在Grid元素的Trigger中,我们使用Loaded事件触发一个Storyboard,该Storyboard包含两个DoubleAnimation元素,分别用于缩放圆圈的X和Y轴。通过设置From和To属性来定义缩放的起始值和结束值。我们还使用了RepeatBehavior属性设置动画的重复行为,并通过AutoReverse属性设置动画是否反向运行。
最后,我们将Ellipse的RenderTransform属性设置为我们刚刚创建的TransformGroup,以便应用动画效果。
阅读全文