我恰好在这里找到了我的问题:Disable Animation in ModernUI Charts
但是没有回答。
我正在编写一个(Mvvm)应用程序,并且想使用Torsten Mandelkows MetroChart。它终于运行了(经过很多次失误),但现在仪表图非常缓慢,直到达到最终价值为止。
例如,它需要近20秒才能达到50%。 有没有办法立即达到最终价值?
这是我的摘录:
查看:
<Viewbox Height="190">
<metroChart:RadialGaugeChart Background="{x:Null}" ChartTitle="Einzelteile" ChartSubTitle="" Foreground="LightGray" Height="300" Width="300" Margin="0,0,0,0" >
<metroChart:RadialGaugeChart.Series>
<metroChart:ChartSeries
DisplayMember="Title"
ItemsSource="{Binding Status}"
SeriesTitle="Status"
HorizontalAlignment="Stretch"
ValueMember="Percent"
VerticalAlignment="Stretch">
</metroChart:ChartSeries>
</metroChart:RadialGaugeChart.Series>
</metroChart:RadialGaugeChart>
</Viewbox>`
ViewModel:
...
Status c = new Status();
c.Title = "Parts";
if (RecievedArticle != null) c.Percent = RecievedArticle.CalcPercentStatus();
Status.Add(c);
...
public ObservableCollection<Status> Status { get; private set; } = new ObservableCollection<Status>();
}
public class Status
{
public string Title { get; set; }
public int Percent { get; set; }
}
`
答案 0 :(得分:0)
我找到了一种加快速度的方法。 认为这是一个非常肮脏的解决方案,但对我有用:
在TorstenMandelkow中。MetroChart是一个名为RadialGaugePiece的类
我编辑了两种方法:
public RadialGaugePiece()
{
//this.timer = new DispatcherTimer();
//this.timer.Tick += new EventHandler(this.timer_Tick);
this.Loaded += new RoutedEventHandler(this.RadialGaugePiece_Loaded);
}
private void UpdatePie()
{
if (this.AnimatedValue == this.Value)
return;
this.animationCounter = 0.0;
this.animationStartValue = this.AnimatedValue;
//this.timer.Interval = TimeSpan.FromMilliseconds(33.3);
this.timer.Interval = TimeSpan.FromMilliseconds(0);
this.timer.Start();
this.Tick();
}