C# 处理数据时显示对话框
我想在执行UI阻止任务时显示加载对话框,因此我执行了以下操作:C# 处理数据时显示对话框,c#,uwp,C#,Uwp,我想在执行UI阻止任务时显示加载对话框,因此我执行了以下操作: public void retrievePosteInformation(字符串posteNumber) { ApplicationDataContainer localSettings=ApplicationData.Current.localSettings; //尝试在此处显示UI上的对话框 RecherchePosteDialog RecherchePosteDialog=新的RecherchePosteDialog();
public void retrievePosteInformation(字符串posteNumber)
{
ApplicationDataContainer localSettings=ApplicationData.Current.localSettings;
//尝试在此处显示UI上的对话框
RecherchePosteDialog RecherchePosteDialog=新的RecherchePosteDialog();
_=recherchePosteDialog.ShowAsync();
//UI阻塞任务
foreach(文件路径中的KeyValuePair-keyval)
{
retrieveCSVInfo(keyval.Value、postnumber、keyval.Key);
}
//任务完成后,再次隐藏对话框
recherchePosteDialog.Hide();
}
但是这里根本没有显示对话框。我不想使用await
语句,因为程序会一直停留在await recherchePosteDialog.ShowAsync()
我只想异步显示它,并在任务完成时隐藏它。您可以尝试在带有ManualResetEvent的线程中运行它
当你打电话的时候
RetrieveWait.Set()
对话框被隐藏
例如:
private static ManualResetEvent RetrieveWait = new ManualResetEvent(false);
Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
RecherchePosteDialog recherchePosteDialog = new RecherchePosteDialog();
recherchePosteDialog.ShowAsync();
RetrieveWait.WaitOne()
recherchePosteDialog.Hide();
});
LoadingIndicator
不会做这项工作吗?你是什么意思?像一个ProgressRing
我在哪里设置它的可见性?你必须显示一个对话框吗?或者显示带有背景的ProgressRing
是否足以掩盖内容(防止用户交互)?您看到控件了吗?没有,但这很有趣,我们会检查它。