这几天需要给终端机做个一组Logo沿圆形轨迹转动效果, 直接用Winform实现太卡(通过不断绘图方式), 考虑到SL3可以脱机运行, 就用它来实现.
网上也找了很多教程, 发现没有较好的方法, 最后自己"研究"出一种可行的方法, 供大家讨论:
1.运行效果:
Code
<Window x:Class="SLTest.test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="test" Height="600" Width="800">
<Window.Resources>
<Storyboard x:Key="Storyboard1">
<PointAnimationUsingPath Storyboard.TargetName="MyAnimatedEllipseGeometry" Storyboard.TargetProperty="Center" Duration="0:0:5" RepeatBehavior="Forever">
<PointAnimationUsingPath.PathGeometry>
<PathGeometry Figures="M 299.9 300 A 100,100 360 1 1 300.1,300 Z"/>
</PointAnimationUsingPath.PathGeometry>
</PointAnimationUsingPath>
</Storyboard>
</Window.Resources>
<Window.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
</EventTrigger>
</Window.Triggers>
<Grid>
<Path x:Name="pt" Stroke="Black" Fill="Gray" Data="M 299.9 300 A 100,100 360 1 1 300.1,300 Z" />
<Path Fill="Blue">
<Path.Data>
<!-- Describes an ellipse. -->
<EllipseGeometry x:Name="MyAnimatedEllipseGeometry"
Center="300,300" RadiusX="15" RadiusY="15" />
</Path.Data>
</Path>
</Grid>
</Window>
相信大家都能看得懂代码的意思, 这里由于时间原因(马上要下班走人了)我就不多啰嗦了, 大家有什么好的方案也欢迎一同讨论.
程序运行环境: VS2008SP1
源代码下载