首先是WPF动画,然后在Screen ViewModel中运行代码

问题描述

您好,我有一个问题想要制作此动画,然后在完成动画后我想运行代码,但我无法弄清楚使用CaliburnMicro在MVVM中完成代码方法

请尽可能帮助我。

    <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>

解决方法

一旦动画结束,您应该收听StoryBoard引发的Completed事件。

您可以为此使用EventTrigger(尽管我不确定是否可以使用),也可以在XAML中绑定处理程序,然后执行所需的操作。

更新:

XAML:

<Storyboard Completed="storyboard_Completed">
     ...

C#:

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

我是这样做的。

    private void DoubleAnimation_Completed(object sender,EventArgs e)
    {
        LoginViewModel vm = this.DataContext as LoginViewModel;

        vm.Forgot();
    } 

,现在可以使用了。谢谢

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...