Hello. I'd like to change Y-axis scale for RadCartesianChart with BarSeries. I do the following for it: 1) Define the property that is binding data source.
/// <
summary
>
/// Step (selected by a user) for vertical axis.
/// </
summary
>
private double _currentStep;
/// <
summary
>
/// Gets or sets the step (selected by a user) for vertical axis.
/// </
summary
>
private double CurrentStep
{
get { return this._currentStep; }
set { this.SetProperty(ref this._currentStep, value); }
}
2) Use the property in binding in XAML (here I don't display all XAML but if you need I'll do it):
<
telerik:RadCartesianChart.VerticalAxis
>
<
telerik:LinearAxis
x:Name
=
"verticalAxis"
Title
=
"Percents [%]"
Minimum
=
"{Binding ChartMinimum}"
Maximum
=
"{Binding ChartMaximum}"
MajorStep
=
"{Binding CurrentStep}"
/>
</
telerik:RadCartesianChart.VerticalAxis
>
As you can see I also set Minimum and Maximum properties here.
3) I assign MajorStep, Minimum and Maximum properties by the values I've got from modal dialog:
private
void
raiseScalingMinMaxInputWindow()
{
InputScalingValuesNotification inputScalingValuesNotification =
new
InputScalingValuesNotification();
inputScalingValuesNotification.Title =
"Set the scale"
;
this
.InputScalingValuesConfirmationRequest.Raise(inputScalingValuesNotification,
returned =>
{
if
(returned !=
null
&& returned.Confirmed)
{
this
.ChartMinimum = (
double
)returned.MinimalScalingValue;
this
.ChartMaximum = (
double
)returned.MaximalScalingValue;
this
.CurrentStep = (
double
)returned.MajorStepValue;
}
});
}
I've checked in debugger so values are assigned correctly. Eventually, LinearAxis.Minimum and LinearAxis.Maximum properties are set correctly but LinearAxis.MajorStep is not set. If you open Scale.PNG file attached you can see the example of it. There I set LinearAxis.Minimum == 1, LinearAxis.Maximum == 12 and LinearAxis.MajorStep == 1. But the value of LinearAxis.MajorStep there is equal to 2. Why does it have place? And the second, why do not all fit in the scale window? So I need that the MajorStep must match the specified value (for example 1 in our case) and all Y-axis scale fits to the window size and not to go outside the window.
May be I do something wrong? May be I should use LinearAxis.ActualRange property instead of LinearAxis.Minimum and LinearAxis.Maximum properties? Please tell me and help me. As always, I will be very grateful to you.