1
使用WPF 3.5我想移动一个画布,并在完成此动画后,使用第二个故事板进一步移动它。我有以下几点:继续WPF动画与其他故事板(不是从开始)
<Storyboard x:Key="Move" Completed="OnMoveCompleted" AutoReverse="False" FillBehavior="HoldEnd">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="canvas">
<SplineDoubleKeyFrame KeyTime="0:0:1.5" Value="-50"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="Move2" AutoReverse="False">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="canvas">
<SplineDoubleKeyFrame KeyTime="0:0:1.5" Value="-75"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
而且在后面的代码我得到:
public void OnMoveCompleted(object sender, EventArgs e)
{
var moveStoryboard = (Storyboard)FindResource("Move2");
moveStoryboard.Begin();
}
MOVE2仅移动帆布75 - 50 = 25个像素。我希望画布先移动50个像素,然后再移动另外75个像素。我认为它可以工作,因为FillBehaviour =“HoldEnd”,所以下一个故事板可以与来自第一个故事板的转换后的Y属性值一起工作,但似乎第二个故事板仅与初始值一起工作(尽管画布似乎并不跳回到最初,至少在视觉上)。
除了将转换放入一个故事板之外,我需要一个解决方案。
我发现是一个的TargetName不能在超过1个故事板,但我希望你找到一个方法。 – Paparazzi
感谢您的回答,但我不认为这是问题所在。在查看所有相关属性后,我终于找到了解决方案。我会尽快将其发布(在发布问题后8小时处罚) – user764754