效果:
代码:
1 <UserControl x:Class="ShineDraw.Controls.LoadingAnimation"
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 Width="400" Height="400" >
5 <UserControl.Resources>
6 <Storyboard x:Name="Rotation" RepeatBehavior="Forever">
7 <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
8 <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
9 <SplineDoubleKeyFrame KeyTime="00:00:00.2000000" Value="0"/>
10 <SplineDoubleKeyFrame KeyTime="00:00:00.2000000" Value="45"/>
11 <SplineDoubleKeyFrame KeyTime="00:00:00.4000000" Value="45"/>
12 <SplineDoubleKeyFrame KeyTime="00:00:00.4000000" Value="90"/>
13 <SplineDoubleKeyFrame KeyTime="00:00:00.6000000" Value="90"/>
14 <SplineDoubleKeyFrame KeyTime="00:00:00.6000000" Value="135"/>
15 <SplineDoubleKeyFrame KeyTime="00:00:00.8000000" Value="135"/>
16 <SplineDoubleKeyFrame KeyTime="00:00:00.8000000" Value="180"/>
17 <SplineDoubleKeyFrame KeyTime="00:00:01.0000000" Value="180"/>
18 <SplineDoubleKeyFrame KeyTime="00:00:01.0000000" Value="225"/>
19 <SplineDoubleKeyFrame KeyTime="00:00:01.2000000" Value="225"/>
20 <SplineDoubleKeyFrame KeyTime="00:00:01.2000000" Value="270"/>
21 <SplineDoubleKeyFrame KeyTime="00:00:01.4000000" Value="270"/>
22 <SplineDoubleKeyFrame KeyTime="00:00:01.4000000" Value="315"/>
23 <SplineDoubleKeyFrame KeyTime="00:00:01.6000000" Value="315"/>
24 </DoubleAnimationUsingKeyFrames>
25 </Storyboard>
26 </UserControl.Resources>
27
28 <Grid x:Name="LayoutRoot" Background="Transparent" RenderTransformOrigin="0.5,0.5">
29 <Grid.RenderTransform>
30 <TransformGroup>
31 <ScaleTransform/>
32 <SkewTransform/>
33 <RotateTransform/>
34 <TranslateTransform/>
35 </TransformGroup>
36 </Grid.RenderTransform>
37 <Ellipse Width="100" Height="100" Fill="#FF000000" >
38 <Ellipse.RenderTransform>
39 <TransformGroup>
40 <ScaleTransform/>
41 <SkewTransform/>
42 <RotateTransform/>
43 <TranslateTransform X="-150"/>
44 </TransformGroup>
45 </Ellipse.RenderTransform>
46 </Ellipse>
47 <Ellipse Width="100" Height="100" Fill="#FFAAAAAA" >
48 <Ellipse.RenderTransform>
49 <TransformGroup>
50 <ScaleTransform/>
51 <SkewTransform/>
52 <RotateTransform Angle="45" CenterX="200" CenterY="50"/>
53 <TranslateTransform X="-150"/>
54 </TransformGroup>
55 </Ellipse.RenderTransform>
56 </Ellipse>
57 <Ellipse Width="100" Height="100" Fill="#FFAAAAAA" >
58 <Ellipse.RenderTransform>
59 <TransformGroup>
60 <ScaleTransform/>
61 <SkewTransform/>
62 <RotateTransform Angle="90" CenterX="200" CenterY="50"/>
63 <TranslateTransform X="-150"/>
64 </TransformGroup>
65 </Ellipse.RenderTransform>
66 </Ellipse>
67 <Ellipse Width="100" Height="100" Fill="#FFAAAAAA" >
68 <Ellipse.RenderTransform>
69 <TransformGroup>
70 <ScaleTransform/>
71 <SkewTransform/>
72 <RotateTransform Angle="135" CenterX="200" CenterY="50"/>
73 <TranslateTransform X="-150"/>
74 </TransformGroup>
75 </Ellipse.RenderTransform>
76 </Ellipse>
77 <Ellipse Width="100" Height="100" Fill="#FF999999" >
78 <Ellipse.RenderTransform>
79 <TransformGroup>
80 <ScaleTransform/>
81 <SkewTransform/>
82 <RotateTransform Angle="180" CenterX="200" CenterY="50"/>
83 <TranslateTransform X="-150"/>
84 </TransformGroup>
85 </Ellipse.RenderTransform>
86 </Ellipse>
87 <Ellipse Width="100" Height="100" Fill="#FF777777" >
88 <Ellipse.RenderTransform>
89 <TransformGroup>
90 <ScaleTransform/>
91 <SkewTransform/>
92 <RotateTransform Angle="225" CenterX="200" CenterY="50"/>
93 <TranslateTransform X="-150"/>
94 </TransformGroup>
95 </Ellipse.RenderTransform>
96 </Ellipse>
97 <Ellipse Width="100" Height="100" Fill="#FF555555" >
98 <Ellipse.RenderTransform>
99 <TransformGroup>
100 <ScaleTransform/>
101 <SkewTransform/>
102 <RotateTransform Angle="270" CenterX="200" CenterY="50"/>
103 <TranslateTransform X="-150"/>
104 </TransformGroup>
105 </Ellipse.RenderTransform>
106 </Ellipse>
107 <Ellipse Width="100" Height="100" Fill="#FF333333" >
108 <Ellipse.RenderTransform>
109 <TransformGroup>
110 <ScaleTransform/>
111 <SkewTransform/>
112 <RotateTransform Angle="315" CenterX="200" CenterY="50"/>
113 <TranslateTransform X="-150"/>
114 </TransformGroup>
115 </Ellipse.RenderTransform>
116 </Ellipse>
117 </Grid>
118 </UserControl>
119
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 Width="400" Height="400" >
5 <UserControl.Resources>
6 <Storyboard x:Name="Rotation" RepeatBehavior="Forever">
7 <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
8 <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
9 <SplineDoubleKeyFrame KeyTime="00:00:00.2000000" Value="0"/>
10 <SplineDoubleKeyFrame KeyTime="00:00:00.2000000" Value="45"/>
11 <SplineDoubleKeyFrame KeyTime="00:00:00.4000000" Value="45"/>
12 <SplineDoubleKeyFrame KeyTime="00:00:00.4000000" Value="90"/>
13 <SplineDoubleKeyFrame KeyTime="00:00:00.6000000" Value="90"/>
14 <SplineDoubleKeyFrame KeyTime="00:00:00.6000000" Value="135"/>
15 <SplineDoubleKeyFrame KeyTime="00:00:00.8000000" Value="135"/>
16 <SplineDoubleKeyFrame KeyTime="00:00:00.8000000" Value="180"/>
17 <SplineDoubleKeyFrame KeyTime="00:00:01.0000000" Value="180"/>
18 <SplineDoubleKeyFrame KeyTime="00:00:01.0000000" Value="225"/>
19 <SplineDoubleKeyFrame KeyTime="00:00:01.2000000" Value="225"/>
20 <SplineDoubleKeyFrame KeyTime="00:00:01.2000000" Value="270"/>
21 <SplineDoubleKeyFrame KeyTime="00:00:01.4000000" Value="270"/>
22 <SplineDoubleKeyFrame KeyTime="00:00:01.4000000" Value="315"/>
23 <SplineDoubleKeyFrame KeyTime="00:00:01.6000000" Value="315"/>
24 </DoubleAnimationUsingKeyFrames>
25 </Storyboard>
26 </UserControl.Resources>
27
28 <Grid x:Name="LayoutRoot" Background="Transparent" RenderTransformOrigin="0.5,0.5">
29 <Grid.RenderTransform>
30 <TransformGroup>
31 <ScaleTransform/>
32 <SkewTransform/>
33 <RotateTransform/>
34 <TranslateTransform/>
35 </TransformGroup>
36 </Grid.RenderTransform>
37 <Ellipse Width="100" Height="100" Fill="#FF000000" >
38 <Ellipse.RenderTransform>
39 <TransformGroup>
40 <ScaleTransform/>
41 <SkewTransform/>
42 <RotateTransform/>
43 <TranslateTransform X="-150"/>
44 </TransformGroup>
45 </Ellipse.RenderTransform>
46 </Ellipse>
47 <Ellipse Width="100" Height="100" Fill="#FFAAAAAA" >
48 <Ellipse.RenderTransform>
49 <TransformGroup>
50 <ScaleTransform/>
51 <SkewTransform/>
52 <RotateTransform Angle="45" CenterX="200" CenterY="50"/>
53 <TranslateTransform X="-150"/>
54 </TransformGroup>
55 </Ellipse.RenderTransform>
56 </Ellipse>
57 <Ellipse Width="100" Height="100" Fill="#FFAAAAAA" >
58 <Ellipse.RenderTransform>
59 <TransformGroup>
60 <ScaleTransform/>
61 <SkewTransform/>
62 <RotateTransform Angle="90" CenterX="200" CenterY="50"/>
63 <TranslateTransform X="-150"/>
64 </TransformGroup>
65 </Ellipse.RenderTransform>
66 </Ellipse>
67 <Ellipse Width="100" Height="100" Fill="#FFAAAAAA" >
68 <Ellipse.RenderTransform>
69 <TransformGroup>
70 <ScaleTransform/>
71 <SkewTransform/>
72 <RotateTransform Angle="135" CenterX="200" CenterY="50"/>
73 <TranslateTransform X="-150"/>
74 </TransformGroup>
75 </Ellipse.RenderTransform>
76 </Ellipse>
77 <Ellipse Width="100" Height="100" Fill="#FF999999" >
78 <Ellipse.RenderTransform>
79 <TransformGroup>
80 <ScaleTransform/>
81 <SkewTransform/>
82 <RotateTransform Angle="180" CenterX="200" CenterY="50"/>
83 <TranslateTransform X="-150"/>
84 </TransformGroup>
85 </Ellipse.RenderTransform>
86 </Ellipse>
87 <Ellipse Width="100" Height="100" Fill="#FF777777" >
88 <Ellipse.RenderTransform>
89 <TransformGroup>
90 <ScaleTransform/>
91 <SkewTransform/>
92 <RotateTransform Angle="225" CenterX="200" CenterY="50"/>
93 <TranslateTransform X="-150"/>
94 </TransformGroup>
95 </Ellipse.RenderTransform>
96 </Ellipse>
97 <Ellipse Width="100" Height="100" Fill="#FF555555" >
98 <Ellipse.RenderTransform>
99 <TransformGroup>
100 <ScaleTransform/>
101 <SkewTransform/>
102 <RotateTransform Angle="270" CenterX="200" CenterY="50"/>
103 <TranslateTransform X="-150"/>
104 </TransformGroup>
105 </Ellipse.RenderTransform>
106 </Ellipse>
107 <Ellipse Width="100" Height="100" Fill="#FF333333" >
108 <Ellipse.RenderTransform>
109 <TransformGroup>
110 <ScaleTransform/>
111 <SkewTransform/>
112 <RotateTransform Angle="315" CenterX="200" CenterY="50"/>
113 <TranslateTransform X="-150"/>
114 </TransformGroup>
115 </Ellipse.RenderTransform>
116 </Ellipse>
117 </Grid>
118 </UserControl>
119
本文转自dotfun 51CTO博客,原文链接:http://blog.51cto.com/dotfun/285679