mvvm - 如何使用 MVVM 为社区工具包 RadialGauge 制作动画?

标签 mvvm uwp windows-community-toolkit

我想为 Windows 社区工具包的radialgauge 设置动画,但不幸的是,在 RaisePropertyChanged 之后 UI 不会自行刷新。

enter image description here

这是我的代码:

查看

<TextBlock Grid.Row="0" Text="{Binding RadialGaugeValue}" />
<controls:RadialGauge 
    x:Name="MyRadialGauge"
    Grid.Row="01"
    Value="{Binding RadialGaugeValue}"
    Minimum="0"
    Maximum="100"
    StepSize="1"
    IsInteractive="False"
    TickSpacing="10"
    TickWidth="0"
    ScaleWidth="4"
    ScalePadding="29"
    ScaleTickWidth="1" 
    MinAngle="245"
    MaxAngle="115"
    Unit="Sparquote"
    NeedleWidth="2"
    NeedleLength="100" 
    MaxHeight="250" 
    Margin="0,20,0,0" 
    NeedleBrush="{ThemeResource SystemColorHighlightBrush}" 
    FocusVisualPrimaryBrush="{x:Null}"
    FocusVisualSecondaryBrush="Green"
    TrailBrush="{ThemeResource SystemColorHotlightBrush}" 
    ValueStringFormat=".&quot;%&quot;"> 

查看型号
private async Task DoSavingRateAnimation(double myValue)
{
    var progress = new Progress<int>(value =>
    {
        RadialGaugeValue = value;
        RaisePropertyChanged("RadialGaugeValue");
    });
    await SavingRateAnimation(progress, myValue);

}

private Task SavingRateAnimation(IProgress<int> progress, double value)
{
    return Task.Run(() =>
    {
        int i = 0;
        while (RadialGaugeValue < value)
        {
            Task.Delay(100).Wait();
            i += 1;
            progress.Report(i);
        }
    });
}

如您所见,radialGauge 不会自行更新。

您知道如何为控件设置动画吗?

最佳答案

请设置RadialGauge与双向模型的值绑定(bind),如下所示。

Value="{Binding RadialGaugeValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"

关于mvvm - 如何使用 MVVM 为社区工具包 RadialGauge 制作动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54914250/

相关文章:

function - 如何实现函数调用的 MVVM?

c# - 使用 StorageLibrary 来监听文件更改 UWP

uwp - 无法在 UWP Windows 应用程序打包解决方案中打开 AppServiceConnection

uwp - UWP BLE 代码中的隐秘 System.ArgumentException

c# - 如何在 Avalonia MVVM 应用程序中使用 InputGesture 实现 MenuItem?

wpf - 如何编辑 ViewModel 对象的属性,但仅在单击 View 中的按钮时应用更改

WPF 使用绑定(bind)将网格行设置为动态 XAML 对象

vb.net - 是否可以让 WebView 控件读取本地 html 文件?

notifications - 为什么桌面操作中心的 Toast 通知缺少应用程序图标?

c# - UWP XAML BladeView 控件 - 将新创建的 BladeItem 滚动到 View 中