按照这个代码, 仍然不能正常显示加载动画
时间: 2024-02-15 09:06:16 浏览: 32
如果按照上面代码仍然不能正常显示加载动画,那么可能是因为耗时操作比较快,导致加载动画在显示出来之前就被隐藏了。你可以试试增加一个延迟来确保加载动画能够正常显示,例如:
```csharp
private void Button_Click(object sender, RoutedEventArgs e)
{
// 显示加载动画
loadingAnimation.Visibility = Visibility.Visible;
// 禁用按钮
button.IsEnabled = false;
// 将耗时操作放到 UI 线程的队列中
Dispatcher.InvokeAsync(async () =>
{
// 延迟一段时间,确保加载动画能够正常显示
await Task.Delay(100);
// 执行费时操作
// ...
// 将取消加载动画的逻辑放到 UI 线程的队列中
Dispatcher.Invoke(() =>
{
// 隐藏加载动画
loadingAnimation.Visibility = Visibility.Collapsed;
// 启用按钮
button.IsEnabled = true;
});
});
}
```
在这个示例代码中,我使用了 `Dispatcher.InvokeAsync` 方法来异步执行耗时操作,并在其中添加了一个延迟操作。这样可以确保加载动画能够正常显示。同时,注意在异步方法中使用 `await` 关键字来等待耗时操作完成。