Hi,
I am using XamDataChart with zoom options. Once i zoom the chart how can i find the min & max values of x & y axis ?
Let me know.
Thanks
Raghu
Hello Raghu,
In order to get min and max values for x and y axis, you need to use the following code. Note that there is difference for calculating min/max for x and y axes:
In code-behind:
double xAxisVisibleMinimum = 0, xAxisVisibleMaximum = 0, yAxisVisibleMinimum = 0, yAxisVisibleMaximum = 0; Rect windowRect = this.DataChart.WindowRect; NumericYAxis yAxis = ((NumericYAxis)this.DataChart.Axes["numericYAxis"]); Grid yAxisPlotArea = ((FrameworkElement)yAxis.Parent).Parent as Grid; if (yAxisPlotArea != null) { Rect viewportRect = new Rect(0, 0, yAxisPlotArea.ActualWidth, yAxisPlotArea.ActualHeight); yAxisVisibleMinimum = yAxis.GetUnscaledValue(viewportRect.Bottom, windowRect, viewportRect); yAxisVisibleMaximum = yAxis.GetUnscaledValue(viewportRect.Top, windowRect, viewportRect); } NumericXAxis xAxis = ((NumericXAxis)this.DataChart.Axes["numericXAxis"]); Grid xAxisPlotArea = ((FrameworkElement)xAxis.Parent).Parent as Grid; if (xAxisPlotArea != null) { Rect viewportRect = new Rect(0, 0, xAxisPlotArea.ActualWidth, xAxisPlotArea.ActualHeight); xAxisVisibleMinimum = xAxis.GetUnscaledValue(viewportRect.Left, windowRect, viewportRect); xAxisVisibleMaximum = xAxis.GetUnscaledValue(viewportRect.Right, windowRect, viewportRect); }
XAML code used in above code snippet:
<ig:XamDataChart x:Name="DataChart" > <ig:XamDataChart.Axes> <ig:NumericXAxis x:Name="numericXAxis" > <ig:NumericXAxis.LabelSettings> <ig:AxisLabelSettings Location="OutsideBottom" Extent="40" /> </ig:NumericXAxis.LabelSettings> </ig:NumericXAxis> <ig:NumericYAxis x:Name="numericYAxis" > <ig:NumericYAxis.LabelSettings> <ig:AxisLabelSettings Location="OutsideLeft" Extent="60" /> </ig:NumericYAxis.LabelSettings> </ig:NumericYAxis> </ig:XamDataChart.Axes> <ig:XamDataChart.Series> <ig:ScatterSplineSeries XMemberPath="X" YMemberPath="Y" ItemsSource="{StaticResource Data}" XAxis="{Binding ElementName=numericXAxis}" YAxis="{Binding ElementName=numericYAxis}" > </ig:ScatterSplineSeries> </ig:XamDataChart.Series> </ig:XamDataChart >
Let me know if you have more questions about it.
Thank you,
Martin