Полоса прокрутки перемещается вправо, а не влево

Я сделал диаграмму, которая динамически рисует всплеск при получении данных. На этой диаграмме я сделал полосу прокрутки, поэтому вовремя отображаются только 20 точек данных.

public void Chart()
{
    ChartArea mov = SleepMovChar.ChartAreas["Movement"];
    mov.AxisX.ScrollBar.Size = 12;
    mov.AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll;
    mov.AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.All ^ ScrollBarButtonStyles.ResetZoom;
    mov.AxisX.ScrollBar.IsPositionedInside = true;
    mov.AxisX.ScrollBar.Enabled = true;
    mov.AxisX.ScaleView.Size = 20;
}

Моя проблема в том, что я хочу, чтобы эта полоса прокрутки перемещалась вправо при получении данных. В настоящее время он перемещается влево, поэтому отображаются первые данные. Я просто хочу, чтобы вместо этого отображались последние данные, чтобы полоса прокрутки следовала за получением данных.


person user3165471    schedule 02.12.2014    source источник


Ответы (1)


Если вы хотите, чтобы видимая область следовала за новыми данными, как на осциллографе, вы можете установить положение прокрутки:

Series S1 = SleepMovChar.Series["yourSeriesByNameOrNumber"];
mov.AxisX.ScaleView.Position = S1.Points.Count - mov.AxisX.ScaleView.Size;

Вам нужно будет повторять это всякий раз, когда вы добавляете точки данных.

person TaW    schedule 02.12.2014