【问题标题】:How to show a loading image in UWP?如何在 UWP 中显示加载图像?
【发布时间】:2016-06-17 19:04:01
【问题描述】:

我正在开发一个 UWP 应用程序。当用户单击任何控件时,如果该控件执行其任务需要较长时间屏幕。 如何在 UWP 应用程序中做到这一点?

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

【问题讨论】:

    标签: c# win-universal-app


    【解决方案1】:

    指示长时间运行操作的最佳方式是使用内置的ProgressRing 控件:

    <ProgressRing x:Name="LoadingIndicator" />
    

    您的长时间运行的操作应实现为async 方法。你可以这样称呼它:

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

    IsActive 设置为true 将显示进度环并开始旋转。将其设置回false 将再次隐藏并停用它。当LongOperationAsync 正在执行时,应用程序将响应并且用户将能够与之交互。

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

    不确定,您是否听说过 UWP 应用的“单线程概念”,但没有什么能阻止您的应用成为多线程。事实上,你不能直接使用Thread 类,但无论如何你都应该使用Task

    【讨论】:

    • 谢谢你现在我可以做... @Damir Arh
    • 如何为进度条设置自定义颜色...默认采用强调色...如何更改...
    • 只需设置Foreground属性,例如:&lt;ProgressRing x:Name="LoadingIndicator" Foreground="Yellow" /&gt;
    【解决方案2】:

    您可以使用 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">

    【讨论】:

      猜你喜欢
      • 2021-05-27
      • 2010-12-06
      • 1970-01-01
      • 2020-03-02
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多