首页 > 解决方案 > 第一个 WPF 动画然后在 Screen ViewModel 中运行代码

问题描述

您好,我有一个问题,我想做这个动画,然后当动画完成后,我想运行代码,但我想不出在 MVVM 中使用 CaliburnMicro 的方法。

如果可能,请帮助我。

    <Button x:Name="Forgot">
        <Button.RenderTransform>
            <TranslateTransform />
        </Button.RenderTransform>

        <Button.Triggers>

            <EventTrigger RoutedEvent="Button.Click">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="UserName"
                                         Storyboard.TargetProperty="RenderTransform.(TranslateTransform.X)"
                                         From="0" To="-1000" Duration="0:0:1" />
                        <DoubleAnimation Storyboard.TargetName="Password"
                                         Storyboard.TargetProperty="RenderTransform.(TranslateTransform.X)"
                                         From="0" To="-1000" Duration="0:0:1"  />
                        <DoubleAnimation Storyboard.TargetName="LogIn"
                                         Storyboard.TargetProperty="RenderTransform.(TranslateTransform.X)"
                                         From="0" To="-1000" Duration="0:0:1" />
                        <DoubleAnimation Storyboard.TargetName="Forgot"
                                         Storyboard.TargetProperty="RenderTransform.(TranslateTransform.X)"
                                         From="0" To="-1000" Duration="0:0:1"  />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Button.Triggers>

标签: c#wpfanimationmvvmcaliburn.micro

解决方案


一旦动画完成,您应该听Completed事件 a引发。StoryBoard

您可以EventTrigger为此使用 an (尽管我不确定这是否可行)或在 XAML 中绑定一个处理程序并在那时做任何您喜欢的事情。

更新:

XAML:

<Storyboard Completed="storyboard_Completed">
     ...

C#:

void storyboard_Completed(object sender, EventArgs args)
{
      // Do whatever you want here.
}

推荐阅读