如何在UWP中显示加载图像?

时间:2016-03-04 06:26:23

标签: c# win-universal-app

我正在开发 UWP 应用程序。当用户点击任何控件时,如果该控件花费更长的时间来执行其任务,我想向用户显示一个指示,如操作需要很长时间,请等待,图像位于中心屏幕。 如何在UWP应用程序中执行此操作?

我认为,如果我是对的,我们的UWP正在研究单线程概念 请给我你解决这个问题的建议。

2 个答案:

答案 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">