c# - .NET Maui 不确定进度条

标签 c# .net maui

我正在使用 .NET MAUI 构建跨平台桌面应用程序。

我有一个冗长的事件,我想为其显示一个不确定的进度条(如看到的 here ),以便用户可以看到操作正在运行,没有已知的结束。

我熟悉 MAUI 进度条元素以及如何为已知进度设置动画,如图所示 here .

await progressBar.ProgressTo(0.75, 500, Easing.Linear);

但是,似乎没有一种本地方法可以在不从 0 到 100 再返回的情况下增加和缩小条形图。以这种方式设置动画时,我必须填满整个条并设置回 0。我无法在范围(例如 25% - 50%)之间设置动画。

有没有办法在 MAUI 应用中实现不确定的进度条?

最佳答案

我刚刚在 nuget.org 上发布了一个 ProgressBar 包,可用于您的目的。它适用于 .NET MAUI 桌面应用程序。

repo :https://github.com/ewerspej/epj.ProgressBar.Maui

Nuget:https://www.nuget.org/packages/epj.ProgressBar.Maui

它仍然是一个预发布版本,但如果您愿意,可以尝试一下。

您必须根据自己的需要实现动画,但您绝对可以使用动画来创建不确定状态之类的东西。

XAML

您需要设置 UseRange = true 才能正常工作。

      <maui:ProgressBar
        x:Name="AnimatedProgressBar"
        HeightRequest="5"
        Margin="15,0"
        UseRange="True"
        UseGradient="True"
        ProgressColor="Blue"
        GradientColor="Orange"/>

代码

    public MainPage()
    {
        InitializeComponent();
        BindingContext = this;

        var lowerAnimation = new Animation(v => AnimatedProgressBar.LowerRangeValue = (float)v, -0.4, 1.0);
        var upperAnimation = new Animation(v => AnimatedProgressBar.UpperRangeValue = (float)v, 0.0, 1.4);

        lowerAnimation.Commit(this, "lower", length: 1000, easing: Easing.CubicInOut, repeat: () => true);
        upperAnimation.Commit(this, "upper", length: 1000, easing: Easing.CubicInOut, repeat: () => true);
    }

关于c# - .NET Maui 不确定进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72873932/

相关文章:

c# - 创建一个由 x 到 y 范围内的值填充的数组

c# - 在没有内容管道的情况下在 XNA 中加载模型

c# - 试图了解我的 IEnumerable 以及为什么我不能使用 .ToList()

.net - MAUI:带有错误页面或小吃的全局异常处理

c# - 为 MAUI Visual Studio 2022 安装 Android 工作负载时出现问题

c# - 每次刷新页面都会插入新行

c# - 如何使用 LINQ 按组选择具有重复列的记录?

c# - 为什么 IEnumerable<T> 不实现 Add(T)?

c# - .NET/C# - 反射 - 曾经使用过的 System.IO.File

MAUI CollectionView SelectedItem 未更新