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.
When you try to set the LabelDefinition property in style it is not applied. As a workaround you can create an attached property to which you can apply the custom definition and set it to the LabelDefinition property of the annotation in its OnPropertyChangedCallback.
If the annotation and its label are out of the viewport (the plot area) and then use the PanZoomBar to scroll to it, the label is not displayed. It appears after the chart layout is updated (ex: resize or zoom).
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.
This reproduces when the axis' SmartLabelMode is enabled. For example, set to SmartStep. See the attached video. As a workaround you can disable the smart label mode and manually calculate the range when zooming. You can use its Minimum, Maximum, MajorStep and MajorStepUnit properties.
The exception is reproducible when you are using SplineSeries with DateTimeContinuousAxis. You need to add data points to the chart with a gap between the dates.
The exception is reproduced only if the Visibility is initially bound to a property that returns Collapsed. This can be reproduce with the chart indicators that derives from LineIndicatorBase. For example, MovingAverageIndicator or MomentumIndicator. To resolve this you can bind the Opacity property instead of Visibility.
This is reproducible only when the chart's automation peers are used. For example, they are used by default when you use the chart on a touch screen. Or when an accessibility tool is used on the application with the chart. You can work it around by disabling the auto peers (http://docs.telerik.com/devtools/wpf/common-ui-automation). AutomationManager.AutomationMode = AutomationMode.Disabled;
When the points in a series consist of values including 0, DivideByZeroException is thrown. The exception is thrown while measuring the chart - the tick step is set to 0 and the index of the tick on the axis cannot be calculated. Workaround: Set the Minimum and Maximum properties of the Axis. Available in LIB version: 2017.2.605
A NullReferenceException is thrown when the Strategy of the series is set Available in LIB version: 2017.2.605
The exception is reproducible when the chart contains series with RenderOptions=Direct2DRenderOptions. The error message is: HRESULT: [0x8876086A], Module: [SharpDX.Direct3D9], ApiCode: [D3DERR_NOTAVAILABLE/NotAvailable], Message: Unknown
Some of the data points plotted in the chart are not positioned as expected in a scenario with DateTimeContinuousAxis with SmartLabelsMode=SmartStep and PlotMode=OnTicksPadded or BetweenTicks.