Создание анимации в приложении Windows Phone проще, чем вы думаете.
Я создал простое приложение, которое показывает, как создать статическую анимацию и динамическую анимацию. Обе анимации заполняют следующий красный прямоугольник снизу вверх.
Статическая анимация
Анимация использует объект раскадровки . Обычно он создается в файле XAML, потому что так проще. Вот код XAML:
<phone:PhoneApplicationPage x:Class="SimpleAnimationApp.StaticAnimationPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone">
<phone:PhoneApplicationPage.Resources>
<Storyboard x:Name="staticAnimation">
<DoubleAnimation Duration="0:0:5"
To="700"
Storyboard.TargetProperty="Height"
Storyboard.TargetName="rectangleRed" />
</Storyboard>
</phone:PhoneApplicationPage.Resources>
<Grid>
<Rectangle Fill="Blue"
Height="700"
Width="100"
VerticalAlignment="Bottom"/>
<Rectangle Fill="Red"
Height="0"
Width="100"
VerticalAlignment="Bottom"
x:Name="rectangleRed"/>
</Grid>
</phone:PhoneApplicationPage>
DoubleAnimation является простейшей анимации доступна, она одушевляет свойство , которое использует двойное значение. Описанная выше двойная анимация определяется следующим образом: анимируйте свойство Height объекта rectangleRed с текущего значения высоты до 700 за 5 секунд.
Чтобы запустить анимацию, вам нужно вызвать метод Begin для анимации:
using System.Windows.Navigation;
namespace SimpleAnimationApp
{
public partial class StaticAnimationPage
{
public StaticAnimationPage()
{
InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
staticAnimation.Begin();
}
}
}
Он не используется в примере приложения, но если вы хотите остановить анимацию в любое время, вам просто нужно вызвать метод Stop для анимации.
Динамическая анимация
Для динамической анимации давайте представим, что свойства Duration и To указаны в коде позади. У нас есть аналогичный код XAML:
<phone:PhoneApplicationPage x:Class="SimpleAnimationApp.DynamicAnimationPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone">
<phone:PhoneApplicationPage.Resources>
<Storyboard x:Name="dynamicAnimation">
<DoubleAnimation Storyboard.TargetProperty="Height"
Storyboard.TargetName="rectangleRed"
x:Name="doubleAnimation" />
</Storyboard>
</phone:PhoneApplicationPage.Resources>
<Grid>
<Rectangle Fill="Blue"
Height="700"
Width="100"
VerticalAlignment="Bottom"/>
<Rectangle Fill="Red"
Height="0"
Width="100"
VerticalAlignment="Bottom"
x:Name="rectangleRed"/>
</Grid>
</phone:PhoneApplicationPage>
Существует одно дополнение x: Name = ”doubleAnimation”, которое поможет управлять анимацией в коде:
using System;
using System.Windows.Navigation;
namespace SimpleAnimationApp
{
public partial class DynamicAnimationPage
{
public DynamicAnimationPage()
{
InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
doubleAnimation.Duration = new TimeSpan(0, 0, 0, 10);
doubleAnimation.To = 350;
dynamicAnimation.Begin();
}
}
}
Перед запуском анимации я установил для параметра « Продолжительность» значение 5 секунд, а для параметра « Кому» — значение 350, равное половине размера синего прямоугольника.
Создать анимацию несложно. Это были простые анимации, но если вы хотите создавать более сложные анимации и даже комбинировать анимации, вы можете найти больше информации в Интернете.
Поставь немного жизни под свой контроль!
Скачать пример проекта
