1

我有一个应用程序,它在 MainWindow.xaml 中包含以下代码,以使用 FontAwesome 图标显示旋转模式:

<Grid Visibility="{Binding SpinningModalVisibility}">
        <StackPanel>
            <fa:ImageAwesome Icon="Spinner" Spin="True" SpinDuration="5"/>
        </StackPanel>
    </Grid>

在 ViewModel 中,我会调用

SpinningModalVisibility = Visibility.Visible;
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, (Action)(() =>
{
   //MyAction
}));
SpinningModalVisibility = Visibility.Hidden;

但是由于某种原因,我的图标没有旋转,并且模态的行为不正确;有时显示,有时不显示。我在这里做错了吗?

4

2 回答 2

2

您应该在后台线程上执行该操作。UI 线程不能同时显示微调器和运行您的代码:

SpinningModalVisibility = Visibility.Visible;
Task.Factory.StartNew(()=> 
{
    //YourAction();
}).ContinueWith(Task => 
{
    SpinningModalVisibility = Visibility.Hidden;
}, System.Threading.CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.FromCurrentSynchronizationContext());
于 2017-04-11T13:08:39.753 回答
-1

SpinDuration=5 是你的问题!

它从用户控件/网格的负载开始......而不是从可见性变化......!用更大的值测试

于 2017-04-11T13:26:19.240 回答