C# 如何显示windows phone 8.1 universal store应用程序的加载动画?

C# 如何显示windows phone 8.1 universal store应用程序的加载动画?,c#,windows-8.1,windows-phone-8.1,win-universal-app,C#,Windows 8.1,Windows Phone 8.1,Win Universal App,当执行异步函数以获取本地数据、访问文件或调用API时,您如何在这个可能很长的例程中触发加载动画 下面是一个例子: <Button onClick="Button_Click" /> public async void Button_Click(object sender, RoutedEventArgs e) { var myData = await MyDataManager.GetMyData(); await new MessageDiaglog("Data

当执行异步函数以获取本地数据、访问文件或调用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();
}

公共异步无效按钮\u单击(对象发送方,路由目标)
{
var myData=await MyDataManager.GetMyData();
等待新消息DiagLog(“数据已加载!”).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;
}

公共异步无效按钮\u单击(对象发送方,路由目标)
{
LoadingBar.IsEnabled=true;
LoadingBar.Visibility=可见性.Visibility;
var myData=await MyDataManager.GetMyData();
等待新消息DiagLog(“数据已加载!”).ShowAsync();
LoadingBar.IsEnabled=false;
LoadingBar.Visibility=Visibility.collazed;
}

这段代码在手机和平板电脑上都可以使用。

在Windows Phone上有一种非常标准的方法。因为它是一个通用的应用程序,最好的选择可能是显示一个进度环

您可以在XAML中添加它

<ProgressRing IsActive="True"/>

单击按钮时,可以在代码隐藏中显式显示它,也可以在viewmodel中使用bool属性(如果使用MVVM)和a来显示或隐藏它,只需将一个属性从true更改为false,反之亦然

我还建议阅读官方文档,在回答这个问题时,我会从Progressing文档中得到一个提示

设置IsActive属性以打开或关闭ProgressRing。如果 IsActive为false,未显示ProgressRing,但空格为false 在UI布局中为其保留。不为会议预留空间 ProgressRing,将其“可见性”属性设置为“折叠”

提示当ProgressRing处于活动状态时,进度动画将继续 即使它在屏幕上不可见,例如当它的可见性为 崩溃了。这可以保持UI线程处于唤醒状态、使用资源和 影响应用程序性能。当ProgressRing不可见时,您可以 应通过将IsActive设置为false来禁用动画


好的,很好-为了清楚起见,我在等待呼叫之前激活/显示它,然后在等待呼叫之后停用/隐藏它?@eden。