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();
}
これは私がそれを動作させる方法を理解できないようです。元の投稿を編集して例を示しました。ズームまたはパンの後にメソッドを実行しようとし、AutoScaleToVisibleDataがYAxisでTrueに設定されていますが、パンまたはズーム後にYAxisに何も起こりません。 – Abiel
YAxisではなく、XAxでAdoptZoomAsRangeを使用する必要があります。 YAxisのAutoScaleToVisibleDataは、XAxisの範囲で表示される範囲に基づいて範囲を計算することを意味するため、毎回その範囲をリセットする必要があります。 [免責事項:私はVisibloxで働いています] – wjbeau
代わりにXAxisにAdoptZoomAsRangeを適用しました。ただし、グラフはマウスホイールを使用してズームアウトされません。 AdoptZoomAsRangeは、PanBehavior_PanEndedとZoomBehavior_ZoomEndedの両方で呼び出されます。 ZoomBehavior_ZoomEndedで削除した場合、ズームアウトすることはできますが、グラフがすでにかなり遠くにズームされている場合には、部分的にのみズームアウトできます。 – Abiel