Currently, RadChartView doesn't support the ChartToolTipBehavior for series that are using BitmapRenderOptions, Direct2DRenderOptions, or SkiaRenderOptions. The tooltip doesn't display.
Currently the MouseWheel event used to zoom is not handled which means that the event will bubble to the parent elements which can lead to scrolling issues. Add an option to handle the MouseWheel event when the chart zooming is enabled.
To get the desired result, you can handle the MouseWheel event of the chart manually.
private void RadCartesianChart_MouseWheel(object sender, MouseWheelEventArgs e)
{
e.Handled = true;
}
In some cases the CartesianGridLineAnnotation can be offset with a single pixel from the expected position on the axis. For example, if the annotation is positioned at value 0 and there is a tick, a offset between the tick and the annotation can be observed.
To work this around, you can manually offset the annotation by setting its Top Margin.
<telerik:CartesianGridLineAnnotation Margin="0 1 0 0"/>
The trackball visuals are the ellipses that snap to the data points when you enable the trackball behavior and hover the plot area. If a trackball is displayed and you zoom-in (via mouse wheel) or pan (via drag), the trackball visuals stay on the proper data point as expected. However, if the zoom-in forces the corresponding data point to go outside the viewport, the trackball follows it and it doesn't get hidden (because it is outside the viewport/plot area).
To work this around, you can manually hide the Ellipse visuals.
private void RadChart_PanOffsetChanged(object sender, Telerik.Windows.Controls.ChartView.ChartPanOffsetChangedEventArgs e)
{
Dispatcher.BeginInvoke(new Action(() =>
{
var chart = (RadCartesianChart)sender;
var trackballs = chart.ChildrenOfType<Ellipse>().Where(x => x.DataContext is DataPointInfo);
foreach (Ellipse visual in trackballs)
{
var dpInfo = (DataPointInfo)visual.DataContext;
RadRect dpSlot = dpInfo.DataPoint.LayoutSlot;
if (!chart.PlotAreaClip.Contains(dpSlot.X, dpSlot.Y))
{
visual.Opacity = 0;
}
else
{
if (visual.Opacity == 0)
{
visual.Opacity = 1;
}
}
}
}));
}
NullReferenceException when MinorTicksPerMajor of the axis is set and the chart gets unloaded.
To work this around, avoid setting the MinorTIcksPerMajor property in this scenario.
The SeriesCreated event of the RadChartView's SeriesProvicer is never called when the SeriesDescriptorSelector property is used.
To work this around, you can create a custom chart series descriptor and override its CreateInstanceCore method.
public class CustomScatterSeriesDescriptor : ScatterSeriesDescriptor
{
protected override ChartSeries CreateInstanceCore(object context)
{
var series = (ScatterSeries)base.CreateInstanceCore(context);
// assign whatever settings you need here
return series;
}
}
ArgumentException occurs when the ItemsSource of the chart series is populated with items that implement the ICustomTypeProvider interface and the value binding properties of the series (ValueBinding, CategoryBinding, YValueBinding, XValueBinding, etc.) are assigned to dynamic properties. This happens when the value binding properties are assigned to PropertyNameDataPointBinding object pointing to a property name. This is also what happens if you set the properties in XAML using string values.
To work this around, you can use the GenericDataPointBinding<T> class defined in code-behind in order to assign the value binding properties.
Or alternatively, you can implement custom PropertyNameDataPointBinding class and override its GetValue() method. In the method, you can check the item type and if it is ICustomTypeProvider, and then execute custom code that gets the value. The custom PropertyNameDataPointBinding implementation is shown in the attached CustomPropertyNameDataPointBinding.zip file. To use the custom binding class in XAML, you can use the following syntax:
<telerik:ScatterPointSeries.YValueBinding>
<local:CustomPropertyNameDataPointBinding PropertyName="Y" />
</telerik:ScatterPointSeries.YValueBinding>
The FadeOtherSeries hover mode doesn't work when the lightweight render options (Direct2D and Bitmap) are used.
You can find one way to work this around in the attached project.
Please add the Contour series for showing the scatter (X,Y) lines which are connecting the points with the equial Z- coordinate. Currently a scatter 3D surface (X,Y,Z) can now be shown only as 3D chart.
Often it is necessary to show 3D surface as 2D chart with lines connecting (X,Y) points with "same Z-level" .
Samples:
References: