C# wpf动画问题

C# wpf动画问题,c#,wpf,C#,Wpf,我有一个xaml视图,其中包含我放入内容控件的动画。在xaml的代码隐藏中,我通过故事板查找资源加载动画。到目前为止还不错。我遇到的问题是在我的xaml中有一个按钮,它从视图模型触发一个中继命令,执行数据库调用,然后提示一条消息。我想实现的是,当我点击按钮时,我想显示动画,然后当消息框显示时,我想隐藏动画。到目前为止没有运气 主视图 <ContentControl Name="loader" /> <StackPanel Orientation="Horizontal" Ho

我有一个xaml视图,其中包含我放入内容控件的动画。在xaml的代码隐藏中,我通过故事板查找资源加载动画。到目前为止还不错。我遇到的问题是在我的xaml中有一个按钮,它从视图模型触发一个中继命令,执行数据库调用,然后提示一条消息。我想实现的是,当我点击按钮时,我想显示动画,然后当消息框显示时,我想隐藏动画。到目前为止没有运气

主视图

<ContentControl Name="loader" />

<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
    <Button Content="Test" Command="{Binding TestCommand, Mode=OneWay}" />
</StackPanel> 
TestViewModel

public ICommand TestCommand
{
    get
    {
        return _TestCommand ?? (_TestCommand = new RelayCommand(p => TestSave()));
    }
}

private void TestSave()
{
// show loading
    if (SaveSuccessFul() == true)
    {
        //hide loading
        MessageBox.Show("Save Completed");

    }
}

ViewModel可以在显示消息框之前引发事件

public event EventHandler LoadSuccessful;

private void TestSave()
{
// show loading
    if (SaveSuccessFul() == true)
    {
        //hide loading
        if (LoadSuccessful != null)
           LoadSuccessful(this, EventArgs.Empty);
        MessageBox.Show("Save Completed");

    }
}
视图可以注册到该事件,并在收到事件时停止动画

public MainView()
{
    InitializeComponent();

    _loading = new LoadingUC();  
    _loaderUC = _loading;         
    showLoading.Content = _loaderUC;

    Storyboard showNewPatUC = FindResource("Test_Loading") as Storyboard;
    showNewPatUC.Begin(_loaderUC);  
}

void OnLoadSuccessful(object sender, EventArgs args)
{
    Storyboard showNewPatUC = FindResource("Test_Loading") as Storyboard;
    showNewPathUC.Stop();
}

好的,那么你面临的错误或问题是什么?你的问题是什么?请发布你的代码,这样我们就可以解决它。@Alex Gelman-你能帮忙吗?我添加了一个代码示例。我不知道如何将视图与viewmodel挂钩,因此我省略了在视图中注册到
LoadSuccessful
事件的代码。我仍然不确定如何设置该事件以使其与我的视图和viewmodel一起工作。我将视图与viewmodel挂钩,如下所示:查看以下答案:
public MainView()
{
    InitializeComponent();

    _loading = new LoadingUC();  
    _loaderUC = _loading;         
    showLoading.Content = _loaderUC;

    Storyboard showNewPatUC = FindResource("Test_Loading") as Storyboard;
    showNewPatUC.Begin(_loaderUC);  
}

void OnLoadSuccessful(object sender, EventArgs args)
{
    Storyboard showNewPatUC = FindResource("Test_Loading") as Storyboard;
    showNewPathUC.Stop();
}