When the CartesianPlotBand annotation is bound to the vertical axis its 'From' value doesn't align with the axis. This changes when resizing.
When a System.Windows.Interactivity.EventTrigger is attached to a ChartTrackBallBehavior a XamlParseException is thrown. A possible work-around for this would be to set the CommandParameter to be the parent collection of the behavior and not the behavior itself.
When the values of the data points have great values and the axis has a very small manual range, the Path element does not render correctly and is at times not visible at all. Workaround: A possible way to resolve this is to use the Direct2DRenderOptions. The different render modes use a completely different rendering logic. <telerik:LineSeries.RenderOptions> <telerik:Direct2DRenderOptions /> </telerik:LineSeries.RenderOptions>
ChartView: InvalidCastException is thrown when using series provider and the property that provides the series' Type is declared in an abstract class
PlotArea occasionally stops refreshing in live data scenario with asynchronous updates (multithreading).
Create a chartview with a linear axis, set minvalue to 2014-11-21, max = 2014-11-24, create a series with only one datapoint with a date=2014-11-23. The barchart graph will show a nice bar, but the X-axis will show you 2014-11-21, although the datapoint is for 2014-11-23!
Depending on the zoom level and height of chart, sometimes the first (bottom) label of the chart is not rendered when the vertical axis is a categorical one and the plot mode is BetweenTicks or OnTicksPadded.
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.
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
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;
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 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.
Workaround: The issue is caused by the MajorTickInterval property, so one way to go is to remove this setting and use the LabelInterval instead. This will plot more ticks than before, but should eliminate the label clip. If the number of ticks bothers you, you can set the MajorTickLength property of the axis to 0 (so that the ticks are not visible) and use a LabelTemplate in which you will include a label and a tick. Another, simpler, work-around is to set a right margin of the chart and set the ClipToBounds property of the chart to false.
When there is defined a ChartPanAndZoomBehavior and the axes of the chart are switched at run-time, the orientation of the PanZoomBar elements it is not changed. Workaround: Get the PanZoomBar element and set its Orientation property. private void TrySetOrientation(CartesianAxis axis, Orientation orientation) { var panZoomBar = Telerik.Windows.Controls.ChildrenOfTypeExtensions.FindChildByType<PanZoomBar>(axis); if (panZoomBar != null) { panZoomBar.Orientation = orientation; } } private void SwapAxes() { // Swapping code here this.Dispatcher.BeginInvoke((Action)(() => { this.TrySetOrientation(this.chart.HorizontalAxis, Orientation.Horizontal); this.TrySetOrientation(this.chart.VerticalAxis, Orientation.Vertical); })); }
The data points are not rendered when the series' axis is set at runtime through a DataTrigger in the series' style. Note: The data points are rendered when the chart is resized or zoomed. Workaround: Change the resource type in the DataTrigger that changes the axis - instead of DynamicResource, use StaticResource. <telerik:CategoricalSeriesDescriptor.Style> <Style TargetType="telerik:LineSeries"> <Style.Triggers> <DataTrigger Binding="{Binding Path=Axis}" Value="Left"> <Setter Property="VerticalAxis" Value="{StaticResource AxisLeft}"/> </DataTrigger> <DataTrigger Binding="{Binding Path=Axis}" Value="Right"> <Setter Property="VerticalAxis" Value="{StaticResource AxisRight}"/> </DataTrigger> </Style.Triggers> </Style> </telerik:CategoricalSeriesDescriptor.Style>
Workaround: One way to work around this is to set the plot mode of the axis to OnTicksPadded.
MovingAverageIndicator doesn't recalculate its data points when a new item is added in its ItemsSource at runtime Workaround: To update the data points of the indicator reset its Period property when a new item is added in the ItemsSource. For example: // add new item var indicator = chart.Indicators[0] as MovingAverageIndicator; var period = indicator.Period; indicator.Period = 0; indicator.Period = period;
In a multiple series scenario if one series gets removed, an internal axis flag is incorrectly reset resulting in the horizontal axis displaying only one label when SmartLabelsMode is used. One way to work-around this is to add an empty dummy series after removing a real series: this.chart1.Series.Remove(EmptyDummySeries); if (this.chart1.Series.Count > 0) { this.chart1.Series.RemoveAt(this.chart1.Series.Count - 1); if (this.chart1.Series.Count > 0) { this.chart1.Series.Add(EmptyDummySeries); } }