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()
Add a mechanism that allows the chart to process only the data within the viewport. This should improve the memory footprint and the performance of the chart in scenarios with big number of data points.
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();
}));
Currently, the control relies on its IsLoaded property to determine if it should render its items (axes, data points, annotations, etc.). However, if you measure and arrange the control in code without adding it into the visual tree, the IsLoaded property is not set to True, therefore the chart is not rendered and the image gets empty. Original description ---------------------------------- Title: RadCartesianChart incorrecly rendered We're rendering (Telerik) charts in code behind, to include them in a dynamic documentation. For most controls it works fine - using standard methods (rendering control with System.Windows.Media.Imaging.RenderTargetBitmap and saving the result BitmapSource to disk) However, it's impossible with RadCartesianChart with CategoricalSeriesDescriptor or ChartSeriesDescriptor. What we are able to get are axes and descriptions, but not bars. I'm attaching an example - MainWindow displays a chart. I try to also create the chart in code behind. In CreateAndSaveChart() method I create a chart with a DataContext, then I call Measure and Arrange methods on it. At this stage the control should be properly initialized and ready to render. (For simplicity I omit rendering control with RenderTargetBitmap - you can preview the control with WPF Tree Visualizer, which will give you the same result). Well, if you preview the control at this stage, you'll see that the chart is missing bars. Next I create a new Window with my chart as a content, and display it for a while. Now the chart is fully and correctly rendered. As a workaround we display some Telerik chart in a transparent window to fully render, but such a workaround was reported not to work for some clients and is unacceptable in a long run. With most of Telerik charts we don't have such problems. Other issue: - for other Telerik charts we need to wait a few seconds to have it fully rendered. It's be better to have an event informing that the control is ready. I'll be happy to add more details if you need any. * While experimenting with the example I've suddenly managed to render the chart with bars, but this time the rendered size was incorrect (very small)
Please add a feature for justifying the bar series chart so that bar data points can be plotted with a "Left", "Right", or "Center" justification to chart ticks. An image to describe a "Right" vs "Center" bar justification is provided.
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.
How can I hide the point in the lineSeries with the large data,and then zoom in by mousewheel,the point can be show in the lineSeries,when zoom out again,the point can be hide. Because with large data in a view,if show the point, the lineSeries's performance is poor,and the details area is not necessary,only when zoom in,we hope to show the point.
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