前台:
<lvc:CartesianChart Series="{Binding LineSeriesCollection}" Grid.Row="2" Margin="40,10,10,0"
LegendLocation="Top">
<lvc:CartesianChart.AxisY >
<lvc:Axis >
</lvc:Axis>
</lvc:CartesianChart.AxisY>
<lvc:CartesianChart.AxisX>
<lvc:Axis Labels="{Binding LineXLabels}">
<lvc:Axis.Separator>
<lvc:Separator Step="1" Visibility="Hidden" StrokeThickness="1.5" StrokeDashArray="0" Stroke="#404F56"></lvc:Separator>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
</lvc:CartesianChart>
后台:
public SeriesCollection lineSeriesCollection = new SeriesCollection();
public SeriesCollection LineSeriesCollection
{
get
{
return lineSeriesCollection;
}
set
{
lineSeriesCollection = value;
}
}
//初始化数据
#region
List<string> titles = new List<string> { "一层", "二层", "三层" };
List<List<int>> values = new List<List<int>>
{
new List<int> { 20, 10, 50 , 10, 50 , 10, 50 , 10, 50 , 10, 50 , 10 },//, 50 , 10, 10, 50,10, 50
new List<int> { 20, 10, 50 , 10, 50 , 10, 50 , 10, 50 , 10, 50 , 10 },//, 50 , 10, 10, 50,10, 50
new List<int> { 10, 50, 30 , 50, 30 , 50, 30 , 50, 30 , 50, 30 , 50 }//, 30 , 30 , 50, 30 , 10, 50
};
List<string> _dates = new List<string>();
for (int i = 0; i < titles.Count; i++)
{
var fill = new SolidColorBrush();
fill.Opacity = 1;
LineSeries lineseries = new LineSeries();
lineseries.DataLabels = true;
lineseries.Title = titles[i];
lineseries.Foreground = fill;
lineseries.Fill = fill;
lineseries.Values = new ChartValues<int>(values[i]);
LineSeriesCollection.Add(lineseries);
}
#endregion
//动态数据
Task.Run(() =>
{
while (true)
{
Thread.Sleep(1000);
Application.Current.Dispatcher.Invoke(() =>
{
var r = new Random();
//更新横坐标时间
LineXLabels.Add(DateTime.Now.ToString("mm:ss"));
LineXLabels.RemoveAt(0);
//更新纵坐标数据
LineSeriesCollection[0].Values.Add(r.Next(80, 100));
LineSeriesCollection[0].Values.RemoveAt(0);
LineSeriesCollection[1].Values.Add(r.Next(60, 120));
LineSeriesCollection[1].Values.RemoveAt(0);
LineSeriesCollection[2].Values.Add(r.Next(60, 120));
LineSeriesCollection[2].Values.RemoveAt(0);
});
}
});