Windows Phone 7 旋转动画(RotateTransform)

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

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

2011022223513375.jpg

 
  
< Grid x:Name ="ContentPanel" Grid.Row ="1" Margin ="12,0,12,0" >
< Grid.RowDefinitions >
< RowDefinition Height ="*" />
< RowDefinition Height ="*" />
< RowDefinition Height ="Auto" />
</ Grid.RowDefinitions >

< TextBlock Grid.Row ="0"
Text
="Frame-Based"
FontSize
=" {StaticResource PhoneFontSizeLarge} "
HorizontalAlignment
="Center"
VerticalAlignment
="Center"
RenderTransformOrigin
="0.5 0.5" >
< TextBlock.RenderTransform >
< RotateTransform x:Name ="rotate1" />
</ TextBlock.RenderTransform >
</ TextBlock >

< TextBlock Grid.Row ="1"
Text
="Time-Based"
FontSize
=" {StaticResource PhoneFontSizeLarge} "
HorizontalAlignment
="Center"
VerticalAlignment
="Center"
RenderTransformOrigin
="0.5 0.5" >
< TextBlock.RenderTransform >
< RotateTransform x:Name ="rotate2" />
</ TextBlock.RenderTransform >
</ TextBlock >

< Button Grid.Row ="2"
Content
="暂停 5 秒"
HorizontalAlignment
="Center"
Click
="OnButtonClick" />
</ Grid >
 
  
using System;
using System.Threading;
using System.Windows;
using System.Windows.Media;
using Microsoft.Phone.Controls;

namespace FrameBasedVsTimeBased
{
public partial class MainPage : PhoneApplicationPage
{
DateTime startTime;

public MainPage()
{
InitializeComponent();

startTime
= DateTime.Now;
CompositionTarget.Rendering
+= OnCompositionTargetRendering;
// 当此事件发生时,表示存在一个可视框架可用于呈现到 Silverlight 内容图面。
// 然后,可以在处理程序中一帧一帧地修改应用程序的可视对象或任何其他方面的内容
}

void OnCompositionTargetRendering( object sender, EventArgs args)
{
// Frame-based
rotate1.Angle = (rotate1.Angle + 0.2 ) % 360 ; // 设置顺时针旋转角度

// Time-based
TimeSpan elapsedTime = DateTime.Now - startTime;
rotate2.Angle
= (elapsedTime.TotalMinutes * 360 ) % 360 ;
}
// 暂停5秒
void OnButtonClick( object sender, RoutedEventArgs args)
{
Thread.Sleep(
5000 );
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值