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.
LabelRotationAngle applies to labels only in horizontal axis.
It is mainly needed in Vertical axis, when the chart is rotated externally, when placed in rotated panel or control. In this case the vertical axis take the role of a horizontal axis visually and easy way to rotate all labels is needed for readability.
Issue1) When no RenderTransformOrigin is set to ScaleAnimation, all slices should be scaled from the pie chart center point. Currently thiss is not true, to better reproduce it , set MaxScale > 1 and notice slices overlap each other at the end of the animation.
Issue2) When RenderTransformOrigin is set to , for example (0, 0), all slices should start animating from topleft corner of the chart. Currently only the first one is animated from top left and all others are animated from pie chart center.
It appears the ChartView is also affected by the same SharpDX issue that affected the RadWebCam when it is used over Remote Desktop.
A simple test of any series will replicate the issue. If it is being used via Remote Desktop, the series will not render.
The VisualStudio2019 ChartPalette (from Telerik.Windows.Controls.ChartView) throws the below exception when using the Telerik .NET Core assemblies. This does not occur when using the Telerik .NET Framework assemblies.
System.IO.IOException: 'Cannot locate resource 'visualization/palettes/resources/visualstudio2019.xml'.'
StackTrace:
at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access)
at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access)
at MS.Internal.IO.Packaging.PackagePartExtensions.GetSeekableStream(PackagePart packPart, FileMode mode, FileAccess access)
at MS.Internal.IO.Packaging.PackagePartExtensions.GetSeekableStream(PackagePart packPart)
at System.Windows.Application.GetResourceStream(Uri uriResource)
at Telerik.Windows.Controls.ChartView.ChartPalettes.LoadPalette(String fileName)
at Telerik.Windows.Controls.ChartView.ChartPalettes.get_VisualStudio2019()
When you set the Palette property to a new instance of ChartPalette in XAML, a NullReferenceException is thrown. This happens when you click inside the chart control in the Visual Studio designer.
The exception reproduces only if the "Miscellaneous" category in the "Properties" pane of Visual Studio is expanded.
To work this around, set the Palette property in code:
C#:
public
MainWindow()
{
InitializeComponent();
this
.chart.Palette = (ChartPalette)
this
.Resources(
"cpBarChart"
);
}
Sub
New
()
InitializeComponent()
Me
.chart.Palette =
DirectCast
(
Me
.Resources(
"cpBarChart"
), ChartPalette)
End
Sub
When you change series datapoints and then play ChartRevealAnimation the following InvalidOperationException might occur:
Cannot call the ClockController.SkipToFill method for a Clock that has a Duration or RepeatDuration of Forever, because this Clock will never reach its fill period.
=====
Workaround:
You can try calling PlayAnimation in Dispatcher:
Dispatcher.BeginInvoke(new Action(() =>
{
this.LineSeries1.PlaySeriesAnimation();
}));
If you define the chart in a new window and open it from the app main window, and then close the window, the chart stays in memory. This is reproducible only in a data binding scenario - the ItemsSource of the chart series should be set to a ObservableCollection<T>.
Additionally, the collection bound to the ItemsSource of the series should be still alive. For example, it can be defined in the view model of the main window that opens the window with the chart.
To resolve this you will need to set the ItemsSource of all chart series in the window to null.
Scheduled for:
The fix for this issue will be available with LIB (version 2019.1.204) scheduled for publishing on Monday, 4th February 2019.
On a desktop device the tooltip is shown when the mouse enters the data point's visual element. On touch device the tooltip should be displayed when you tap (or tap and hold) on the visual element. Currently, this doesn't work. To work this around you can implement custom tooltip behavior using RadToolTip and TouchManager. https://docs.telerik.com/devtools/wpf/controls/radtooltip/overview https://docs.telerik.com/devtools/wpf/controls/touchmanager/overview
During Series animation, the stroke of the AreaSeries (area, splinearea, scatterarea, steparea) is not animated.
Gaps appear between the bars in the stacks when the series are populated with negative and positive values. Check the attached picture. If you have a scenario with mixed values (positive and negative) use RangeBarSeries instead of BarSeries.