问题


我为我的WPF应用程序使用了名为“OxyPlot”的第三方插件 . 此插件允许您在不同类型的图形上绘制点 .

在我的图表中,我显示了我设置的“Bandwidth ' of my computer for every second of when I click a certain button. The graph is updating correctly and working but I am unsure of how the graph automatically scrolls passed the ' Maximum”值 .

代码


这是播放按钮,将启动计时器:

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,这是底轴的最大值 . 图表将停止移动,我希望它与数据一起滚动 .

问题


如何使用我正在绘制的点向右移动图形?