Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 首先是WPF动画,然后在Screen ViewModel中运行代码_C#_Wpf_Animation_Mvvm_Caliburn.micro - Fatal编程技术网

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

C# 首先是WPF动画,然后在Screen ViewModel中运行代码,c#,wpf,animation,mvvm,caliburn.micro,C#,Wpf,Animation,Mvvm,Caliburn.micro,您好,我有一个问题,我想做这个动画,然后当动画完成后,我想运行代码,但我无法找到使用CaliburnMicro在MVVM中完成它的方法 如果可能的话,请帮助我 <Button x:Name="Forgot"> <Button.RenderTransform> <TranslateTransform /> </Button.RenderTransform>

您好,我有一个问题,我想做这个动画,然后当动画完成后,我想运行代码,但我无法找到使用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>

动画完成后,您应该收听情节提要引发的事件

您可以为此使用
EventTrigger
(尽管我不确定这是否有效),也可以在XAML中绑定一个处理程序,然后在这一点上做任何您喜欢的事情

更新:

XAML:

我是这样做的

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

        vm.Forgot();
    } 

现在它开始工作了。谢谢你

这就是问题所在,我不知道怎么做。如果我执行了
Completed=“forget
,那么我会得到错误。是否可以显示该示例?我可以这样做:
public分部类LoginView:UserControl{private IEventAggregator(事件;public LoginView(IEventAggregator事件){InitializeComponent();}私有void DoubleAnimation_已完成(对象发送方,EventArgs e){{u events.publishOnIthread(new ResetEvent());}
但是我在BootstraperOr中遇到了错误,换句话说,我不知道如何发布事件,以便ViewModel可以订阅它。或者这个故事板是否应该在ViewModel中完成重要的是,您帮助我完成了我想要的。非常感谢。
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();
    }