我希望我的应用程序在加载内容时显示加载的动画图像,我尝试添加已经制作的动画.gif文件,但似乎WP7不支持...
图片是这样加载的:
我正在考虑制作一种方法来在2D游戏中的精灵表之间滚动,但这需要花费太多精力来制作这样的方法,而且我不确定它是否可以在silverlight中工作,任何其他简单的解决方案那个?
答案 0 :(得分:4)
之前我已经改编了Dean Chalk's基于XAML的加载器;它作为一个叠加层工作得很好。在不进行后台工作时,只需将其“可见性”设置为“隐藏”,然后在希望在后台执行操作时使用加载指示器阻止部分UI时将其切换为“可见”。动画在XAML中定义,因此它不需要任何代码或技巧就可以使它旋转。
以下是相关位:
<Canvas RenderTransformOrigin="0.5,0.5" Width="120" Height="120">
<Ellipse Width="21.835" Height="21.862" Canvas.Left="20.1696" Canvas.Top="9.76358"
Stretch="Fill" Fill="#E6000000"/>
<Ellipse Width="21.835" Height="21.862" Canvas.Left="2.86816" Canvas.Top="29.9581"
Stretch="Fill" Fill="#CD000000"/>
<Ellipse Width="21.835" Height="21.862" Canvas.Left="5.03758e-006" Canvas.Top="57.9341"
Stretch="Fill" Fill="#B3000000"/>
<Ellipse Width="21.835" Height="21.862" Canvas.Left="12.1203" Canvas.Top="83.3163"
Stretch="Fill" Fill="#9A000000"/>
<Ellipse Width="21.835" Height="21.862" Canvas.Left="36.5459" Canvas.Top="98.138"
Stretch="Fill" Fill="#80000000"/>
<Ellipse Width="21.835" Height="21.862" Canvas.Left="64.6723" Canvas.Top="96.8411"
Stretch="Fill" Fill="#67000000"/>
<Ellipse Width="21.835" Height="21.862" Canvas.Left="87.6176" Canvas.Top="81.2783"
Stretch="Fill" Fill="#4D000000"/>
<Ellipse Width="21.835" Height="21.862" Canvas.Left="98.165" Canvas.Top="54.414"
Stretch="Fill" Fill="#34000000"/>
<Ellipse Width="21.835" Height="21.862" Canvas.Left="92.9838" Canvas.Top="26.9938"
Stretch="Fill" Fill="#1A000000"/>
<Ellipse Width="21.835" Height="21.862" Canvas.Left="47.2783" Canvas.Top="0.5"
Stretch="Fill" Fill="#FF000000"/>
<Canvas.RenderTransform>
<RotateTransform x:Name="SpinnerRotate" Angle="0" />
</Canvas.RenderTransform>
<Canvas.Triggers>
<EventTrigger RoutedEvent="ContentControl.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="SpinnerRotate"
Storyboard.TargetProperty="(RotateTransform.Angle)"
From="0" To="360" Duration="0:0:01"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Triggers>
</Canvas>
You can click this link for more details.这是WPF,因此可能需要一些工作来使其适应WP7。
顺便说一句,当我说“叠加”时,我的意思是将一个元素放在另一个元素上。如:<Grid>
<t:MyUserControl />
<t:MyOverlayUserControl Visibility="Hidden" />
</Grid>
答案 1 :(得分:2)
不幸的是,Silverlight不支持动画GIF。对我来说,使用Blend和一些类似于上面发布的无限递归的矢量图形效果很好。如果要重复使用,请尝试创建用户控件。