2011-07-27 5 views
2

XAxis(YAxisではなく)でのズームとパンが可能なVisiblox折れ線グラフがあります。グラフの特定の領域に拡大またはパンした後、YAxisの範囲と目盛りを目に見えるデータのみに基づいて再計算したいと思います。 YAxisでAutoScaleToVisibleData = "True"を設定しようとしましたが、ズームやパンがXAxis.Rangeを設定しないため、XAxis.RangeをYAxisのAutoScaleToVisibleDataプロパティに変更する必要があります。Visibloxグラフのパンまたはズームイン後の軸の自動拡大

EDIT

私は今IAxis.AdoptZoomAsRange()関数を使用しようとしていますが、それを見つけ出すように見えることはできません。以下の関連サンプルコード:

XAML:

<charts:Chart Name="chart"> 
    <charts:Chart.Behaviour> 
     <charts:BehaviourManager AllowMultipleEnabled="True"> 
      <charts:PanBehaviour IsEnabled="True" YPanEnabled="False" PanEnded="PanBehaviour_PanEnded" /> 
      <charts:ZoomBehaviour IsEnabled="True" YZoomEnabled="False" AnimationEnabled="False" ZoomMode="MouseWheel" ZoomEnded="ZoomBehaviour_ZoomEnded" /> 
     </charts:BehaviourManager> 
    </charts:Chart.Behaviour> 
    <charts:Chart.XAxis> 
     <charts:DateTimeAxis /> 
    </charts:Chart.XAxis> 
    <charts:Chart.YAxis> 
     <charts:LinearAxis AutoScaleToVisibleData="True" /> 
    </charts:Chart.YAxis> 
</charts:Chart> 

コードビハインド:

public MainWindow() 
{ 
    InitializeComponent(); 

    DataSeries<DateTime, double> dataSeries = new DataSeries<DateTime, double>(); 
    for (int i = 0; i < 100; i++) 
     dataSeries.Add(new DataPoint<DateTime, double>(DateTime.Now.AddMonths(i), i)); 

    LineSeries lineSeries = new LineSeries(); 
    lineSeries.DataSeries = dataSeries; 
    chart.Series.Add(lineSeries); 
} 

private void PanBehaviour_PanEnded(object sender, EventArgs e) 
{ 
    chart.YAxis.AdoptZoomAsRange(); 
} 

private void ZoomBehaviour_ZoomEnded(object sender, EventArgs e) 
{ 
    chart.YAxis.AdoptZoomAsRange(); 
} 

答えて

0

IAxis上AdoptZoomAsRange方法は、あなたが探しているものはおそらくある - それは使用されているダウンロード可能な例がありますこのblog postでは、そのことがうまくいけば分かります。

[開示:私はVisibloxで働いています]

+0

これは私がそれを動作させる方法を理解できないようです。元の投稿を編集して例を示しました。ズームまたはパンの後にメソッドを実行しようとし、AutoScaleToVisibleDataがYAxisでTrueに設定されていますが、パンまたはズーム後にYAxisに何も起こりません。 – Abiel

+0

YAxisではなく、XAxでAdoptZoomAsRangeを使用する必要があります。 YAxisのAutoScaleToVisibleDataは、XAxisの範囲で表示される範囲に基づいて範囲を計算することを意味するため、毎回その範囲をリセットする必要があります。 [免責事項:私はVisibloxで働いています] – wjbeau

+0

代わりにXAxisにAdoptZoomAsRangeを適用しました。ただし、グラフはマウスホイールを使用してズームアウトされません。 AdoptZoomAsRangeは、PanBehavior_PanEndedとZoomBehavior_ZoomEndedの両方で呼び出されます。 ZoomBehavior_ZoomEndedで削除した場合、ズームアウトすることはできますが、グラフがすでにかなり遠くにズームされている場合には、部分的にのみズームアウトできます。 – Abiel

関連する問題