using LiveCharts;
using LiveCharts.Wpf;
using System;
using System.Collections.Generic;
using System.Windows.Controls;
namespace FastGithub.UI
{
///
/// FlowChart.xaml 的交互逻辑
///
public partial class FlowChart : UserControl
{
private readonly LineSeries readSeries = new LineSeries
{
Title = "上行速率",
PointGeometry = null,
Values = new ChartValues()
};
private readonly LineSeries writeSeries = new LineSeries()
{
Title = "下行速率",
PointGeometry = null,
Values = new ChartValues()
};
public SeriesCollection Series { get; } = new SeriesCollection();
public List Labels { get; } = new List();
public Func YFormatter { get; } = value => $"{value:0.00}";
public FlowChart()
{
InitializeComponent();
this.Series.Add(this.readSeries);
this.Series.Add(this.writeSeries);
DataContext = this;
}
public void Add(FlowRate flowRate)
{
this.readSeries.Values.Add(flowRate.ReadRate / 1024);
this.writeSeries.Values.Add(flowRate.WriteRate / 1024);
this.Labels.Add(DateTime.Now.ToString("HH:mm:ss"));
if (this.Labels.Count > 60)
{
this.readSeries.Values.RemoveAt(0);
this.writeSeries.Values.RemoveAt(0);
this.Labels.RemoveAt(0);
}
}
}
}