我使用了名为“OxyPlot”的第三方插件。我的WPF应用程序。此插件允许您在不同类型的图形上绘制点。
在我的图表上,我正在显示' 带宽'当我点击某个按钮时,我的电脑每秒钟。图表正在正确更新并正常工作,但我不确定图表如何自动滚动通过' 最大'我设定的价值。
这是播放按钮,将启动计时器:
private void CameraPlayShow(object sender, RoutedEventArgs e)
{
videoStreamTimer.Tick += new EventHandler(videoStreamTick);
videoStreamTimer.Interval = new TimeSpan(0, 0, 0, 1, 0);
videoStreamTimer.Start();
}
这是计时器调用的方法,在这里我们称之为' UpdateGraph ':
private void videoStreamTick(object sender, EventArgs e)
{
UpdateGraphStats();
}
这是我们添加新点的方法:
private void UpdateGraphStats()
{
_xValue++;
try
{
DataTable serverStats = Global.podiaClient.GetLiveStats(Global.podiaSession, Global.gChapter.Guid).Tables[0];
_bandwidth.Points.Add(new DataPoint(_xValue, GetEncoderCPU()));
Model.InvalidatePlot(true);
}
catch (Exception ex)
{
}
}
最后,这是我配置PlotModel的地方:
private static PlotModel CreateNormalDistributionModel()
{
var plot = new PlotModel
{
Title = "Encoder CPU",
Subtitle = "Lorem Ipsum Lorem Ipsum Lorem Ipsum"
};
plot.Axes.Add(new LinearAxis
{
Position = AxisPosition.Left,
TickStyle = TickStyle.Inside
});
plot.Axes.Add(new LinearAxis
{
Position = AxisPosition.Bottom,
IsPanEnabled = false,
Minimum = 0,
Maximum = 100,
MinorStep = 1,
MajorStep = 5,
MajorTickSize = 2,
MinorTickSize = 1,
TickStyle = TickStyle.Inside
});
return plot;
}
因此,您可以从代码中看到_xValue
是否超过100,这是底轴的最大值。图表将停止移动,我希望它与数据一起滚动。
如何使用我正在绘制的点向右移动图形?