1. 程式人生 > 其它 >uwp之圖片旋轉動畫實現

uwp之圖片旋轉動畫實現

參考網址:https://blog.csdn.net/hzw2945/article/details/72467820

https://www.cnblogs.com/changbaishan/p/3307942.html

先放效果圖。類似網易雲音樂播放音樂時封面旋轉效果

兩種實現方式,分別是前端(xaml)和後臺(c#程式碼)實現,右邊的圖片旋轉是在xaml實現,左邊的長方形(其實是個Button控制元件)旋轉是在c#程式碼裡面實現

xaml程式碼如下

<Grid x:Name="LayoutRoot" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.Resources>

</Grid.Resources>
<!--Ellipse是繪製一個橢圓形-->
<Ellipse x:Name="ellipse" Width="200" Height="200" RenderTransformOrigin="0.5,0.5">
<Ellipse.RenderTransform>
<CompositeTransform/>
</Ellipse.RenderTransform>
<Ellipse.Resources>
<!--Storyboard是一個動畫容器-->
<Storyboard x:Name="EllStoryboard" RepeatBehavior="Forever">
<DoubleAnimation Duration="0:0:20" To="360" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="ellipse" d:IsOptimized="True"/>
</Storyboard>
</Ellipse.Resources>
<!--這是用一張圖片來填充這個橢圓形-->
<Ellipse.Fill>
<ImageBrush x:Name="picture" ImageSource="Assets\30.jpg" />
</Ellipse.Fill>
</Ellipse>

<Button x:Name="button" Width="50" Height="30" Margin="10">
</Button>
</Grid>

當完成了以上的xaml的時候,右邊的旋轉動畫已經做好,只要在.cs檔案裡面相應的地方讓動畫開始或者暫停或者結束
//圖片旋轉動畫開始
EllStoryboard.Begin();
//圖片旋轉動畫暫停
EllStoryboard.Pause();
//圖片旋轉動畫結束
EllStoryboard.Stop();

在.cs檔案裡面用c#程式碼來實現Button的旋轉

private void Rotation()
{

button.RenderTransformOrigin = new Point(0.5, 0.5);

CompositeTransform c = new CompositeTransform();

button.RenderTransform = c;

Storyboard storyboard = new Storyboard();
DoubleAnimation animation = new DoubleAnimation
{
From = 0,
To = 360,
Duration = new Duration(TimeSpan.FromSeconds(20)),
};

Storyboard.SetTarget(animation, button);
Storyboard.SetTargetName(animation, "button");
Storyboard.SetTargetProperty(animation, "(UIElement.RenderTransform).(CompositeTransform.Rotation)");

storyboard.Children.Add(animation);


}

其實C#程式碼就是用程式碼把xaml裡的屬性加進去而已
————————————————
版權宣告:本文為CSDN博主「hzw2945」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/hzw2945/article/details/72467820