Вы можете определить раскадровку в XAML, которая управляет непрозрачностью.Следующий полный пример XAML иллюстрирует это:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowTitle="Fading Rectangle Example">
<StackPanel Margin="10">
<Rectangle
Name="MyRectangle"
Width="100"
Height="100"
Fill="Blue">
</Rectangle>
<Button Name="BeginButton">Begin</Button>
<StackPanel.Triggers>
<EventTrigger RoutedEvent="Button.Click" SourceName="BeginButton">
<BeginStoryboard Name="MyBeginStoryboard">
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="MyRectangle"
Storyboard.TargetProperty="(Rectangle.Opacity)"
From="1.0" To="0.0" Duration="0:0:5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</StackPanel.Triggers>
</StackPanel>
</Page>
Возможно также запустить анимацию из C # в соответствии с вашими требованиями:
public void DoAnimation()
{
Storyboard opacityStoryboard = FindResource("MyBeginStoryboard") as Storyboard;
opacityStoryboard.Begin(this);
}
Комбинация двух подходов заключается в определениианимация в XAML и активация ее в C #.
Используя этот шаблон, вы можете определить две раскадровки:
- Раскадровка, которая изменяет свойство непрозрачности формы с 0,0 до 1,0 в течение пяти секунд
- Раскадровка, изменяющая свойство непрозрачности формы с 1,0 на 0,0 в течение трех секунд
Вы можете изменить приведенный выше пример, чтобы сделать его в качестве отдельного примера:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowTitle="Fading Rectangle Example">
<StackPanel Margin="10">
<Rectangle
Name="MyRectangle"
Width="100"
Height="100"
Fill="Blue">
</Rectangle>
<Button Name="FadeInButton">Fade In</Button>
<Button Name="FadeOutButton">Fade Out</Button>
<StackPanel.Triggers>
<EventTrigger RoutedEvent="Button.Click" SourceName="FadeInButton">
<BeginStoryboard Name="FadeInStoryboard">
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="MyRectangle"
Storyboard.TargetProperty="(Rectangle.Opacity)"
From="0.0" To="1.0" Duration="0:0:5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Button.Click" SourceName="FadeOutButton">
<BeginStoryboard Name="FadeOutStoryboard">
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="MyRectangle"
Storyboard.TargetProperty="(Rectangle.Opacity)"
From="1.0" To="0.0" Duration="0:0:3" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</StackPanel.Triggers>
</StackPanel>
</Page>
Используя вышеприведенный шаблон «Запуск раскадровки из C #», вы можете в любой момент запустить каждый из раскадровок в своем коде C #.