您的位置:首页 > 移动开发 > Objective-C

WPF备忘录四(事件动画)

2012-01-14 09:47 190 查看
<Grid>
<Rectangle Height="65" HorizontalAlignment="Left"  Fill="Blue" Margin="133,67,0,0" Name="rect" Stroke="Black" VerticalAlignment="Top" Width="73">
<Rectangle.RenderTransform>
<RotateTransform Angle="0" CenterX="20" CenterY="20" x:Name="rt"></RotateTransform>
</Rectangle.RenderTransform>
</Rectangle>
<Button Content="开始" Height="23" HorizontalAlignment="Left" Margin="32,189,0,0" Name="btnStart" VerticalAlignment="Top" Width="75" />
<Button Content="暂停" Height="23" HorizontalAlignment="Left" Margin="113,189,0,0" Name="btnPause" VerticalAlignment="Top" Width="75" />
<Button Content="继续" Height="23" HorizontalAlignment="Left" Margin="194,189,0,0" Name="btnResume" VerticalAlignment="Top" Width="75" />
<Button Content="停止" Height="23" HorizontalAlignment="Right" Margin="0,189,153,0" Name="btnStop" VerticalAlignment="Top" Width="75" />
<Grid.Triggers>
<!--开始-->
<EventTrigger SourceName="btnStart" RoutedEvent="Button.Click">
<EventTrigger.Actions>
<BeginStoryboard x:Name="bs">
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation Storyboard.TargetName="rt" Storyboard.TargetProperty="Angle" From="0" To="360" Duration="00:00:10"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<!--暂停-->
<EventTrigger SourceName="btnPause" RoutedEvent="Button.Click">
<EventTrigger.Actions>
<PauseStoryboard BeginStoryboardName="bs"></PauseStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<!--继续-->
<EventTrigger SourceName="btnResume" RoutedEvent="Button.Click">
<ResumeStoryboard BeginStoryboardName="bs"></ResumeStoryboard>
</EventTrigger>
<!--停止-->
<EventTrigger SourceName="btnStop" RoutedEvent="Button.Click">
<StopStoryboard BeginStoryboardName="bs"></StopStoryboard>
</EventTrigger>
</Grid.Triggers>
</Grid>

利用代码方式处理动画事件:

<Grid>
<Rectangle Height="65" HorizontalAlignment="Left" Fill="Blue" Margin="133,67,0,0" Name="rect" Stroke="Black" VerticalAlignment="Top" Width="73">
<Rectangle.RenderTransform>
<RotateTransform Angle="0" CenterX="20" CenterY="20" x:Name="rt"></RotateTransform>
</Rectangle.RenderTransform>
</Rectangle>
<Button Content="开始" Height="23" HorizontalAlignment="Left" Margin="32,189,0,0" Name="btnStart" VerticalAlignment="Top" Width="75" Click="btnStart_Click" />
<Button Content="暂停" Height="23" HorizontalAlignment="Left" Margin="113,189,0,0" Name="btnPause" VerticalAlignment="Top" Width="75" />
<Button Content="继续" Height="23" HorizontalAlignment="Left" Margin="194,189,0,0" Name="btnResume" VerticalAlignment="Top" Width="75" />
<Button Content="停止" Height="23" HorizontalAlignment="Right" Margin="0,189,153,0" Name="btnStop" VerticalAlignment="Top" Width="75" />
</Grid>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

private void btnStart_Click(object sender, RoutedEventArgs e)
{
DoubleAnimation da = new DoubleAnimation(0,100,new Duration(TimeSpan.FromSeconds(5)));
da.RepeatBehavior = RepeatBehavior.Forever; //永久循环
da.AutoReverse = true; //来回往复
//第一种方式
//rect.BeginAnimation(Rectangle.WidthProperty, da);
//第二种方式,可以添加多个动画
Storyboard sb = new Storyboard();
Storyboard.SetTargetProperty(da,new PropertyPath(Rectangle.WidthProperty));
sb.Children.Add(da);
sb.Begin(rect);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  wpf button object class 360