我正在尝试将矩形的不透明度从0更改为1,然后从1更改为0,但是还要在每个步骤上等待2秒。所以我想将2秒设为1,然后在500毫秒内将其更改为0,然后再以不透明度0等待另外2秒,然后在500毫秒内再次将其变为1等等。
我有此代码:
Storyboard.SetTargetProperty(forwardDoubleAnimation,
new PropertyPath("(Path.Fill).(SolidColorBrush.Opacity)"));
Storyboard.SetTargetProperty(reverseDoubleAnimation,
new PropertyPath("(Path.Fill).(SolidColorBrush.Opacity)"));
forwardDoubleAnimation.Completed += (sender, args) =>
{
Thread.Sleep(2000);
reverseStoryboard.Begin();
};
reverseDoubleAnimation.Completed += (sender, args) =>
{
Thread.Sleep(2000);
forwardStoryboard.Begin();
};
但是我在reverseStoryboard.Begin()上有一个例外,说我没有为其设置目标属性。
有没有办法使用单个动画来完成设置属性以便等待?
答案 0 :(得分:-1)
也许这可以为您提供帮助(请根据您的问题更改持续时间)。
<Rectangle Grid.Row="0" x:Name="Rectangle" Fill="Red" Width="500" Height="400">
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="Rectangle" Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:3" BeginTime="0:0:3" RepeatBehavior="Forever" AutoReverse="True"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>