c# - 具有特定值的动画 ProgressBar 内容 WPF

标签 c# .net wpf progress-bar

我正在尝试开发一个 ProgressBar,它会根据我手动设置的值进行填充。例如,我有这个 ProgressBar:

<ProgressBar Height="33" HorizontalAlignment="Left" Name="progressBar1" VerticalAlignment="Top" Width="285" />

我有一个按钮,每次按下它时 ProgressBar 值都会增加 10 个单位,如下所示:

private void button1_Click(object sender, RoutedEventArgs e)
{
    progressBar1.Value += 10;
}

我想在每次单击它时为该值更改设置动画。我试过这个:

Duration duration = new Duration(TimeSpan.FromSeconds(1));
DoubleAnimation doubleanimation = new DoubleAnimation(200.0, duration);
progressBar1.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);

但是 ProgressBar 的值从 0 变为 100。如何让动画停止在特定值处,而不是达到 100%?

最佳答案

如果您执行以下操作,您实际上是在将 Value 设置为最终值 200 的动画:

DoubleAnimation doubleanimation = new DoubleAnimation(200.0, duration);

而是将第一个参数更改为您想要动画化的值。您的事件处理程序应如下所示:

private void button1_Click(object sender, RoutedEventArgs e)
{
    Duration duration = new Duration(TimeSpan.FromSeconds(1));
    DoubleAnimation doubleanimation = new DoubleAnimation(progressBar1.Value + 10, duration);
    progressBar1.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);
}

关于c# - 具有特定值的动画 ProgressBar 内容 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17594871/

相关文章:

c# - 层次结构问题 -> 用 Linq Join 替换递归?

c# - 只获取几个结果集

.net - 使用 Linq 查找列表中按属性 A 排序的第一个对象,然后是属性 B

c# - WPF 加载微调器

c# - 获取 GeometryModel3D 的名称

c# - 获取DataGrid宽度

C# 封闭类的类型

c# - 如何从另一个程序集中的内部接口(interface)派生

c# - Generic HttpHandler(一个 ashx,IHttpHandler 接口(interface))什么时候可以重用?

c# - 有没有办法指定自定义依赖属性的默认 ValidatesOnDataErrors?