2016-03-04 14 views
2

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

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

回答

6

,表示长时间运行的操作,最好的方法是使用内置的ProgressRing控制:

<ProgressRing x:Name="LoadingIndicator" /> 

你的长期运行的操作应实现为async方法。可以按如下方式调用它:

try 
{ 
    LoadingIndicator.IsActive = true; 
    await LongOperationAsync(); 
} 
finally 
{ 
    LoadingIndicator.IsActive = false; 
} 

设置IsActivetrue会显示进度环,并开始旋转。将其重新设置为false将会再次隐藏和停用。当LongOperationAsync正在执行时,应用程序将作出响应,用户将能够与它进行交互。

如果您使用MVVM,您当然可以设置一个布尔属性,并将其绑定到IsActive属性。

不确定,你已经听说过有关UWP应用程序的“单线程概念”,但没有什么会阻止你的应用程序被多线程化。事实上,你不能直接使用Thread类,但是反正你应该使用Task

+0

谢谢现在我能够做到...... @Damir Arh – Sagar

+0

如何为进度设置自定义颜色...默认情况下需要重音颜色...如何更改它... – Razor

+0

只需设置'Foreground'属性,例如:'' –

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