今回は2つのアニメーションを同時に実行してみましょう。
MainPage.xamlにRectangleコントロールとButtonコントロールを1つずつ貼り付けてください。
貼り付けたRectangleコントロールの名前はrectBlockとします。
最初に以下XAMLを記述してください。
このXAMLでは、1つのアニメーションののみを実行します。retBoxの幅が3秒間で100~200に大きくなります。
XAMLの例
<Page
x:Class="Step23.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Step23"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" Loaded="Page_Loaded">
<Page.Resources>
<Storyboard x:Key="storyBoard">
<DoubleAnimation Storyboard.TargetName="rectBlock"
Storyboard.TargetProperty="Width"
EnableDependentAnimation="True"
From="100" To="200"
Duration="0:0:3"/>
</Storyboard>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Button Content="Button" HorizontalAlignment="Left" Margin="100,48,0,0" VerticalAlignment="Top" Click="Button_Click"/>
<Rectangle x:Name="rectBlock" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="103,99,0,0" Stroke="Black" VerticalAlignment="Top" Width="100"/>
</Grid>
</Page>
Buttonクリック時のイベントは以下のようにしてください。
VBの例
Imports Windows.UI.Xaml.Media.Animation
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
DirectCast(Me.Resources("storyBoard"), Storyboard).Begin()
End Sub
C#の例
using Windows.UI.Xaml.Media.Animation;
private void Button_Click(object sender, RoutedEventArgs e)
{
(this.Resources["storyBoard"] as Storyboard).Begin();
}
次にもう1つのアニメーションとして、縦方向のサイズを変更するアニメーションを追加してみましょう。
<DoubleAnimation>要素で指定できるターゲット(アニメーションの対象)は1つです。
ではどのようにして、もう1つのターゲットを指定するかというと、単純に<DoubleAnimation>要素を追加します。
先ほどのXAMLのStoryBoard部分を以下の様にします。
XAMLの例
<Storyboard x:Key="storyBoard">
<!--横方向のアニメーション-->
<DoubleAnimation Storyboard.TargetName="rectBlock"
Storyboard.TargetProperty="Width"
EnableDependentAnimation="True"
From="100" To="200"
Duration="0:0:3"/>
<!--縦方向のアニメーション-->
<DoubleAnimation Storyboard.TargetName="rectBlock"
Storyboard.TargetProperty="Height"
EnableDependentAnimation="True"
From="100" To="200"
Duration="0:0:3"/>
</Storyboard>
Please follow and like us:

コメント