[WPF] 圆形等待效果

转自:http://blog.youkuaiyun.com/qqamoon/article/details/7001693

自己做着玩儿的,留着以后用,效果类似下面的 GIF 动画。

等待效果

[html]  view plain copy
  1. <Grid Width="35" Height="35">  
  2.     <Grid.Resources>  
  3.         <DrawingBrush x:Key="brush" Stretch="None" AlignmentX="Center" AlignmentY="Top">  
  4.             <DrawingBrush.Drawing>  
  5.                 <GeometryDrawing Brush="Black">  
  6.                     <GeometryDrawing.Geometry>  
  7.                         <EllipseGeometry RadiusX="2" RadiusY="5"/>  
  8.                     </GeometryDrawing.Geometry>  
  9.                 </GeometryDrawing>  
  10.             </DrawingBrush.Drawing>  
  11.         </DrawingBrush>  
  12.     </Grid.Resources>  
  13.   
  14.     <Rectangle x:Name="r01" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  15.         <Rectangle.RenderTransform>  
  16.             <RotateTransform Angle="0"/>  
  17.         </Rectangle.RenderTransform>  
  18.     </Rectangle>  
  19.     <Rectangle x:Name="r02" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  20.         <Rectangle.RenderTransform>  
  21.             <RotateTransform Angle="30"/>  
  22.         </Rectangle.RenderTransform>  
  23.     </Rectangle>  
  24.     <Rectangle x:Name="r03" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  25.         <Rectangle.RenderTransform>  
  26.             <RotateTransform Angle="60"/>  
  27.         </Rectangle.RenderTransform>  
  28.     </Rectangle>  
  29.     <Rectangle x:Name="r04" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  30.         <Rectangle.RenderTransform>  
  31.             <RotateTransform Angle="90"/>  
  32.         </Rectangle.RenderTransform>  
  33.     </Rectangle>  
  34.     <Rectangle x:Name="r05" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  35.         <Rectangle.RenderTransform>  
  36.             <RotateTransform Angle="120"/>  
  37.         </Rectangle.RenderTransform>  
  38.     </Rectangle>  
  39.     <Rectangle x:Name="r06" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  40.         <Rectangle.RenderTransform>  
  41.             <RotateTransform Angle="150"/>  
  42.         </Rectangle.RenderTransform>  
  43.     </Rectangle>  
  44.     <Rectangle x:Name="r07" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  45.         <Rectangle.RenderTransform>  
  46.             <RotateTransform Angle="180"/>  
  47.         </Rectangle.RenderTransform>  
  48.     </Rectangle>  
  49.     <Rectangle x:Name="r08" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  50.         <Rectangle.RenderTransform>  
  51.             <RotateTransform Angle="210"/>  
  52.         </Rectangle.RenderTransform>  
  53.     </Rectangle>  
  54.     <Rectangle x:Name="r09" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  55.         <Rectangle.RenderTransform>  
  56.             <RotateTransform Angle="240"/>  
  57.         </Rectangle.RenderTransform>  
  58.     </Rectangle>  
  59.     <Rectangle x:Name="r10" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  60.         <Rectangle.RenderTransform>  
  61.             <RotateTransform Angle="270"/>  
  62.         </Rectangle.RenderTransform>  
  63.     </Rectangle>  
  64.     <Rectangle x:Name="r11" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  65.         <Rectangle.RenderTransform>  
  66.             <RotateTransform Angle="300"/>  
  67.         </Rectangle.RenderTransform>  
  68.     </Rectangle>  
  69.     <Rectangle x:Name="r12" Fill="{StaticResource brush}" Opacity="0.2" RenderTransformOrigin="0.5,0.5">  
  70.         <Rectangle.RenderTransform>  
  71.             <RotateTransform Angle="330"/>  
  72.         </Rectangle.RenderTransform>  
  73.     </Rectangle>  
  74.                   
  75.     <Grid.Triggers>  
  76.         <EventTrigger RoutedEvent="Grid.Loaded">  
  77.             <BeginStoryboard>  
  78.                 <Storyboard RepeatBehavior="Forever">  
  79.                     <DoubleAnimation Storyboard.TargetName="r01" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.00000" To="0"/>  
  80.                     <DoubleAnimation Storyboard.TargetName="r02" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.08333" To="0"/>  
  81.                     <DoubleAnimation Storyboard.TargetName="r03" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.16666" To="0"/>  
  82.                     <DoubleAnimation Storyboard.TargetName="r04" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.24999" To="0"/>  
  83.                     <DoubleAnimation Storyboard.TargetName="r05" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.33332" To="0"/>  
  84.                     <DoubleAnimation Storyboard.TargetName="r06" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.41665" To="0"/>  
  85.                     <DoubleAnimation Storyboard.TargetName="r07" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.49998" To="0"/>  
  86.                     <DoubleAnimation Storyboard.TargetName="r08" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.58331" To="0"/>  
  87.                     <DoubleAnimation Storyboard.TargetName="r09" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.66664" To="0"/>  
  88.                     <DoubleAnimation Storyboard.TargetName="r10" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.74997" To="0"/>  
  89.                     <DoubleAnimation Storyboard.TargetName="r11" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.83330" To="0"/>  
  90.                     <DoubleAnimation Storyboard.TargetName="r12" Storyboard.TargetProperty="Opacity" AutoReverse="True" Duration="0:0:0.08333" BeginTime="0:0:0.91663" To="0"/>  
  91.                 </Storyboard>  
  92.             </BeginStoryboard>  
  93.         </EventTrigger>  
  94.     </Grid.Triggers>  
  95. </Grid>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值