Windows Phone 7 旋转动画(RotateTransform)

所谓旋转动画(RotateTransform)也就是一个元素以一个坐标点为旋转中心点旋转,在使用旋转动画(RotateTransform)的时候需要注意的有两点:旋转中心点(Center)和旋转角度(Angle)。

小例子设置了一个按照角度变化旋转,一个按照时间变化来旋转

 

Windows Phone 7 旋转动画(RotateTransform) 

 


  1. <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
  2.             <Grid.RowDefinitions> 
  3.                 <RowDefinition Height="*" /> 
  4.                 <RowDefinition Height="*" /> 
  5.                 <RowDefinition Height="Auto" /> 
  6.             </Grid.RowDefinitions> 
  7.  
  8.             <TextBlock Grid.Row="0" 
  9.                        Text="Frame-Based" 
  10.                        FontSize="{StaticResource PhoneFontSizeLarge}" 
  11.                        HorizontalAlignment="Center" 
  12.                        VerticalAlignment="Center" 
  13.                        RenderTransformOrigin="0.5 0.5"> 
  14.                 <TextBlock.RenderTransform> 
  15.                     <RotateTransform x:Name="rotate1" /> 
  16.                 </TextBlock.RenderTransform> 
  17.             </TextBlock> 
  18.  
  19.             <TextBlock Grid.Row="1" 
  20.                        Text="Time-Based" 
  21.                        FontSize="{StaticResource PhoneFontSizeLarge}" 
  22.                        HorizontalAlignment="Center" 
  23.                        VerticalAlignment="Center" 
  24.                        RenderTransformOrigin="0.5 0.5"> 
  25.                 <TextBlock.RenderTransform> 
  26.                     <RotateTransform x:Name="rotate2" /> 
  27.                 </TextBlock.RenderTransform> 
  28.             </TextBlock> 
  29.  
  30.             <Button Grid.Row="2" 
  31.                     Content="暂停 5 秒" 
  32.                     HorizontalAlignment="Center" 
  33.                     Click="OnButtonClick" /> 
  34.     </Grid> 

 


  1. using System;  
  2. using System.Threading;  
  3. using System.Windows;  
  4. using System.Windows.Media;  
  5. using Microsoft.Phone.Controls;  
  6.  
  7. namespace FrameBasedVsTimeBased  
  8. {  
  9.     public partial class MainPage : PhoneApplicationPage  
  10.     {  
  11.         DateTime startTime;  
  12.  
  13.         public MainPage()  
  14.         {  
  15.             InitializeComponent();  
  16.  
  17.             startTime = DateTime.Now;  
  18.             CompositionTarget.Rendering += OnCompositionTargetRendering;  
  19.             //当此事件发生时,表示存在一个可视框架可用于呈现到 Silverlight 内容图面。  
  20.             //然后,可以在处理程序中一帧一帧地修改应用程序的可视对象或任何其他方面的内容  
  21.         }  
  22.  
  23.         void OnCompositionTargetRendering(object sender, EventArgs args)  
  24.         {  
  25.             // Frame-based  
  26.             rotate1.Angle = (rotate1.Angle + 0.2) % 360;//设置顺时针旋转角度  
  27.  
  28.             // Time-based  
  29.             TimeSpan elapsedTime = DateTime.Now - startTime;  
  30.             rotate2.Angle = (elapsedTime.TotalMinutes * 360) % 360;  
  31.         }  
  32.         //暂停5秒  
  33.         void OnButtonClick(object sender, RoutedEventArgs args)  
  34.         {  
  35.             Thread.Sleep(5000);  
  36.         }  
  37.     }  

 


本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1078709


上一篇:透过 3.0 Preview 看 Dubbo 的云原生变革


下一篇:10款基于jQuery 的图片360度旋转插件