2017-01-10 5 views
1

wpf 및 oxyPlot을 처음 사용했습니다. 이제 오실로스코프와 같이 동적 인 선형 차트를 만들고 싶지만 마우스 휠이 확대 될 때 값에 축을 고정하는 방법을 모르겠습니다.마우스 휠 때 oxyplot 축 잠금 센터

예 :

enter image description here

빨간 점은 마우스 위치입니다. 정상적으로 확대 A → B, 확대 C → D가됩니다. 0 센터의 마우스 위치와 같이 C -> E를 확대하고 싶습니다.

+0

하나의 도끼 위로 포인터를 줌하면 해당 도끼 만 확대/축소됩니다. – Jose

+0

@Kirenenko 알아,하지만 내 뜻은 아니야. 하나의 축 위에 포인터를 놓으면 중심 값을 확대 할 수 있습니다. –

+0

그러면 원하는 것을 수직축을 차단 하시겠습니까? 어쩌면 당신이 원하는 것을 보여주는 그림/GIF가 도움이 될 것입니다. – Jose

답변

1

축 줌 센터를 차단하는 솔루션을 찾았습니다. 생성자에 값을 지정 해달라고하면

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

plotModel.Axes.Add(bottomAxis); 

, 중심 값은 0

될 것입니다 : 당신은 같이 사용할 필요가

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); 
    } 
} 

을 : 당신은이를 달성하기 위해 사용자 정의 LinearAxis을 만들어야합니다

+0

Thx. 그것은 일이다. 하지만 두 가지 질문이 있습니다. 1. 'ZoomAt()'와 'ZoomAtCenter()'를 직접 사용하는 것과 다른 점은 무엇입니까? 2. Center 값이 0이 아닌 경우 줌하면 중심 값이 거의 사라집니다. –

+0

처음에는 덮어 쓰기 기능 안에서'ZoomAtCenter'를 사용해 보았습니다. 그러나 'ZoomAt'을 호출하므로 무한 루프가 발생합니다. 또한 답을 올바른 것으로 받아들이십시오. – Jose