2017-01-10 18 views
1

Я новичок в wpf и oxyPlot. Теперь я хочу создать динамическую линейную диаграмму, подобную осциллографу, но я не знаю, как заблокировать ось при значении, когда колесико мыши увеличивается.центр блокировки оси оксида, когда колесо мыши

Пример:

enter image description here

Красная точка расположения мыши. В нормальном режиме, масштабирование A -> B, масштабирование C -> D. теперь, я хочу увеличить C -> E, как местоположение мыши в центре 0.

+0

Знаете ли вы, что если вы увеличиваете масштаб с помощью указателя на один топор, только этот топор будет увеличиваться? – Jose

+0

@ Кирененко. Я знаю, но это не значит. Если я укажу на одну ось, возможно, я хочу, чтобы она увеличивала центральное значение. –

+0

то что вы хотите сделать, заблокировать вертикальную ось? Возможно, изображение/gif, показывающее то, что вы хотите достичь, поможет. – Jose

ответ

1

Я нашел решение, которое работает для блокировки центра масштабирования оси. Вы должны создать собственный LinearAxis для достижения этой цели:

public class FixedCenterLinearAxis : LinearAxis 
{ 
    double center = 0; 
    public FixedCenterLinearAxis() : base(){} 

    public FixedCenterLinearAxis(double _center) : base() 
    { 
     center = _center; 
    } 

    public override void ZoomAt(double factor, double x) 
    { 
     base.ZoomAt(factor, center); 
    } 
} 

Вы должны использовать его так:

var bottomAxis = new FixedCenterLinearAxis(0.5) //specify the center value here 
{ 
    Position = AxisPosition.Bottom, 
}; 

plotModel.Axes.Add(bottomAxis); 

Если вы не указать значение на конструкторе, центральное значение будет 0.

+0

Thx. Это работает. Но у меня есть два вопроса. 1. Чем отличается использование 'ZoomAt()' и 'ZoomAtCenter()' напрямую? 2. Если значение центра не равно 0, когда я увеличиваю масштаб, центральное значение почти исчезает. –

+0

Сначала я попытался использовать 'ZoomAtCenter' внутри перезаписываемой функции. Но он вызывает «ZoomAt», поэтому он вызывает бесконечный цикл. Также не стесняйтесь принимать ответ как правильный. – Jose

 Смежные вопросы

  • Нет связанных вопросов^_^