我正在开发 UWP 应用程序。当用户点击任何控件时,如果该控件花费更长的时间来执行其任务,我想向用户显示一个指示,如操作需要很长时间,请等待,图像位于中心屏幕。 如何在UWP应用程序中执行此操作?
我认为,如果我是对的,我们的UWP正在研究单线程概念 请给我你解决这个问题的建议。
答案 0 :(得分:8)
指示长时间运行操作的最佳方法是使用内置ProgressRing
控件:
<ProgressRing x:Name="LoadingIndicator" />
您的长时间运行操作应该以{{1}}方法实现。您可以按如下方式调用它:
async
将try
{
LoadingIndicator.IsActive = true;
await LongOperationAsync();
}
finally
{
LoadingIndicator.IsActive = false;
}
设置为IsActive
将显示进度响铃并开始旋转。将其重新设置为true
将再次隐藏和停用它。当false
正在执行时,应用程序将响应,用户将能够与其进行交互。
如果您正在使用MVVM,您当然可以设置一个布尔属性并将其绑定到LongOperationAsync
属性。
不确定,您在哪里听说过UWP应用程序的“单线程概念”,但没有什么可以阻止您的应用程序被多线程化。实际上,您无法直接使用IsActive
类,但无论如何都应该使用Thread
。
答案 1 :(得分:0)
您可以使用FFImageLoading它使用各种方法来优化图像加载(包括下载/内存缓存),还支持加载/错误占位符:
<ff:FFImage VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
TransformPlaceholders="False"
LoadingPlaceholder="loading.png"
ErrorPlaceholder="error.png"
Height="500"
Width="500"
Source="http://loremflickr.com/600/600/nature?filename=simple.jpg">