在执行异步函数以获取本地数据、访问文件或调用 API 时,如何在这个可能很长的例程中触发加载动画?
这是一个例子:
<Button onClick="Button_Click" />
public async void Button_Click(object sender, RoutedEventArgs e)
{
var myData = await MyDataManager.GetMyData();
await new MessageDiaglog("Data Loaded!").ShowAsync();
}
由于它是一个通用商店应用程序,我认为它应该在 Windows 8.1 和 Windows Phone 8.1 中都可以正常工作。
从解决方案更新
根据 igrali 的回答,我更新了我的代码以供将来参考:
<ProgressBar x:Name="LoadingBar" Visibility="Collapsed" IsEnabled="False" IsIndeterminate="true" Height="4" HorizontalAlignment="Stretch"/>
<Button onClick="Button_Click" />
public async void Button_Click(object sender, RoutedEventArgs e)
{
LoadingBar.IsEnabled = true;
LoadingBar.Visibility = Visibility.Visible;
var myData = await MyDataManager.GetMyData();
await new MessageDiaglog("Data Loaded!").ShowAsync();
LoadingBar.IsEnabled = false;
LoadingBar.Visibility = Visibility.Collapsed;
}
此代码适用于手机和平板电脑。