2017-01-10 5 views
1

私はwpfとoxyPlotが初めてです。 オシロスコープのようなダイナミックな折れ線グラフを作成したいのですが、マウスホイールがズームすると値に軸を固定する方法がわかりません。マウスプロンプトでオキシプロット軸ロックセンター

例:

enter image description here

赤い点がマウス位置です。通常、ズームA - > B、ズームC - > D。今、0中心のマウスの位置のようにC - > Eをズームしたい。

+0

ポインタを1つの単一の斧の上にズームすると、その斧だけがズームすることがわかりますか? – Jose

+0

@キレネンコ私は知っているが、それは私のことではない。 1つの軸上にポインタを置くと、中心の値をズームしたいかもしれません。 –

+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。それは仕事です。しかし、私は2つの質問があります。 1. 'ZoomAt()'と 'ZoomAtCenter() 'を直接使用する点は何ですか? 2. Center値が0でない場合、ズームすると中心値がほとんど消えます。 –

+0

まず、上書き機能で 'ZoomAtCenter'を使ってみました。しかし、それは 'ZoomAt'を呼び出すので、無限ループを引き起こします。また、その答えを正しいものとして受け入れるように気をつけてください。 – Jose

関連する問題