Annotation (Grid line ) for the DateTimeContinuousAxis is not visualized on iOS. It works as expected on Android.
Add grid line annotation for the datetime axes. the grid lines are not visualized on iOS.
<telerikChart:RadCartesianChart x:Name="chart">
<telerikChart:RadCartesianChart.BindingContext>
<local:ViewModel />
</telerikChart:RadCartesianChart.BindingContext>
<telerikChart:RadCartesianChart.HorizontalAxis>
<telerikChart:DateTimeContinuousAxis LabelFitMode="Rotate"
x:Name="horizontal"/>
</telerikChart:RadCartesianChart.HorizontalAxis>
<telerikChart:RadCartesianChart.VerticalAxis>
<telerikChart:NumericalAxis />
</telerikChart:RadCartesianChart.VerticalAxis>
<telerikChart:RadCartesianChart.Series>
<telerikChart:SplineSeries ValueBinding="Value"
CategoryBinding="Date"
ItemsSource="{Binding Data}"
ShowLabels="True"
/>
</telerikChart:RadCartesianChart.Series>
<telerikChart:RadCartesianChart.Annotations>
<telerikChart:CartesianGridLineAnnotation Stroke="#0E72F6"
StrokeThickness="2"
Value="{Binding Threshold}"
Axis="{x:Reference horizontal}">
<telerikChart:CartesianGridLineAnnotation.DashArray>
<x:Array Type="{x:Type x:Double}">
<x:Double>4.0</x:Double>
<x:Double>2.0</x:Double>
</x:Array>
</telerikChart:CartesianGridLineAnnotation.DashArray>
</telerikChart:CartesianGridLineAnnotation>
</telerikChart:RadCartesianChart.Annotations>
</telerikChart:RadCartesianChart>
Put several Pie charts in a StackPanel and set the WidthRequest and HeightRequest to let's say 60. You will notice that the circular pie itlsef appears much smaller than the expected 60. In Android and Windows Phone it appears as expected.
When having the following code on a button click
private void Button_Clicked(object sender, System.EventArgs e)
{
this.chart.Zoom = new Size();
}
The chart zoom is reset first time, but when zooming again and pressing the button, the zoom level does not reset. You have to pan the chart, then zoom reset works.
This code resets the zoom:
private void OnResetZoomClicked(object sender, EventArgs e)
{
this.chart.Zoom = new Size(1, 1); // This line is added as a workaround to reset the Zoom level
this.chart.Zoom = new Size();
}
If you have the following PieChart with donut series definition:
<telerikChart:RadPieChart HeightRequest="200"
WidthRequest="200">
<telerikChart:RadPieChart.Series>
<telerikChart:DonutSeries ShowLabels="True"
ValueBinding="Value"
ItemsSource="{Binding Data}" />
<telerikChart:DonutSeries ShowLabels="True"
RadiusFactor="0.45"
ValueBinding="Value"
ItemsSource="{Binding Data1}" />
</telerikChart:RadPieChart.Series>
</telerikChart:RadPieChart>
On android works as expected:
On iOS the series are overlapped and not visualized as expected. The radius factor is not respected
On UWP the second donut series in not visualized and the radius factor is not respected.
If you have a Chart with BarSeries and TooltipBehavior defined, the tooltip of each bar is shown only when the user taps in the area around the tip of the bar.
The expected behavior is the tooltip to be displayed when clicking anywhere on the bar.
X-Axis labels are overlapped when new data points are constantly added.
on Android, the axis labels are replaced.
There is an inconsistency in the behavior on Android and iOS.
Workaround:
apply ChartPanAndZoomBehavior and set
PanMode to "Horizontal"
ZoomMode to "Horizontal"
And chart Zoom to "2,1"
<telerikChart:RadCartesianChart PaletteName="Light"
Zoom="2, 1">
<telerikChart:RadCartesianChart.BindingContext>
<local:ViewModel/>
</telerikChart:RadCartesianChart.BindingContext>
<telerikChart:RadCartesianChart.HorizontalAxis>
<telerikChart:DateTimeContinuousAxis LabelFitMode="Rotate"
MajorStepUnit="Day"
PlotMode="OnTicks"
LabelFormat="dd MMM"
MajorStep="20"
ShowLabels="True"/>
</telerikChart:RadCartesianChart.HorizontalAxis>
<telerikChart:RadCartesianChart.VerticalAxis>
<telerikChart:NumericalAxis />
</telerikChart:RadCartesianChart.VerticalAxis>
<telerikChart:RadCartesianChart.Series>
<telerikChart:LineSeries ValueBinding="Value"
CategoryBinding="Date"
DisplayName="Sales"
ItemsSource="{Binding Data}"/>
</telerikChart:RadCartesianChart.Series>
<telerikChart:RadCartesianChart.ChartBehaviors>
<telerikChart:ChartPanAndZoomBehavior ZoomMode="Horizontal"
PanMode="Horizontal"
HandleDoubleTap="True"/>
</telerikChart:RadCartesianChart.ChartBehaviors>
</telerikChart:RadCartesianChart>
Add the ability to render points outside of the plot area when the data point value exceeds the explicitly set Min or Max values of the horizontal axis. On Android and iOS, the line series will continue to extend off the plot area to a point that isn't rendered. Here's a screenshot, notice the line coming in from the left side of the plot area: https://www.telerik.com/clientsfiles/77e02115-6de0-4dd0-b572-5d5bc17a59b9_xamarin.jpg On UWP, the beginning of the line series only starts on the first plot-able point. Here's a screenshot, notice the start of the line series: https://www.telerik.com/clientsfiles/d8c342e3-608b-40eb-95eb-8bd5e0dbc2e6_uwp.jpg
Hi Team,
If you set the PanOffset in XAML, it is not applied.
Does not work:
<telerikChart:RadCartesianChart x:Name="MyChart" Zoom="2, 1" PanOffset="-400,0" >
I would expect that the RadChartView renderer would be responsible for handling this after the control is loaded and the series/axis is rendered (see workaround).
If I subscribe to the ChartView's NativeControlLoaded event and wait approx 100ms before calling PanOffset, it will work.
e.g.
<telerikChart:RadCartesianChart x:Name="MyChart" Zoom="2, 1"
NativeControlLoaded="MyChart_OnNativeControlLoaded">
private async void MyChart_OnNativeControlLoaded(object sender, EventArgs e)
{
await Task.Delay(100);
MyChart.PanOffset = new Point(-400, 0);
}
The takeaway, and basis of this Bug Report, is that the control should internally perform this delay check and set the PanOffset.
This will enable MVVM scenarios because (I originally wanted to bind the PanOffset value from my view model).
Thank you,
Ramakant
As of the latest release (10/04/2019) RadPieChart with a PieSeries having LabelBinding set to a property name, and ShowLabels set to True, with the list of data bound to ItemsSource containing one or more empty pie slices (a null in the list), causes a System.Reflection.TargetException to be thrown on load of the page containing the chart in iOS (this scenario works fine in UWP).
I am using the latest available Visual Studio 2019 (16.3.5) and the latest available Xamarin.Forms package (4.2.0.848062) and testing on an iPad with iOS 13.1. The reason I need to have a null value in the list is so that the custom color palette I'm applying will always apply the same colors to the same data points (pie slices), even though in some cases, zero or one or two of the three pie slices will have no data value (and so should not appear in the chart, but still "use up" the corresponding color in the 3 colors of the palette).
In the 08/02/2019 release, this scenario worked fine in iOS (the 09/13/2019 release had the https://feedback.telerik.com/xamarin/1431067-chart-ios-invalidcastexception-is-thrown-when-the-chart-is-loaded issue, which is now resolved in the 10/04/2019 release, but which prevented my testing in iOS since in my app I had RadCartesianCharts on the same pages as the RadPieCharts).
The newly broken functionality in iOS could possibly be related to two other items that are marked completed:
https://feedback.telerik.com/xamarin/1366403-piechart-tooltip-behavior-is-not-working-properly (in 10/04/2019 release)
https://feedback.telerik.com/xamarin/1365842-chart-null-value-support (in R3 2018 SP release)