I'm creating a column chart with the x axis as a DateTimeContinuousAxis. Once the date range reaches sufficient length, the column widths do not get any smaller. Instead, they start overlapping each other. In my case, I have a about 85 points over a period of about 8 months with the axis MajorStepUnit set to Days. You can see in the first attachment, a screenshot of the chart where the column backgrounds are blue and the borders are red. My expectation is that the column width should shrink as more columns are added & that there should be no overlapping. Any guidance here would be appreciated. Thanks - Mitch.
Below are the xaml and code behind for creating the attached screenshot (I can send the project if desired):
XAML:
<Window x:Class="MathNETTest.MainWindow" xmlns:local="clr-namespace:MathNETTest" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Title="MainWindow" Height="750" Width="925" > <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/MathNETTest;component/Themes/Windows8/Telerik.Windows.Controls.xaml"/> <ResourceDictionary Source="pack://application:,,,/MathNETTest;component/Themes/Windows8/Telerik.Windows.Controls.DataVisualization.xaml"/> <ResourceDictionary Source="pack://application:,,,/MathNETTest;component/Themes/Windows8/Telerik.Windows.Controls.Chart.xaml"/> </ResourceDictionary.MergedDictionaries> <Style TargetType="{x:Type telerik:BarSeries}" BasedOn="{StaticResource BarSeriesStyle}"> <Setter Property="PointTemplate"> <Setter.Value> <DataTemplate> <Border Background="Blue" BorderBrush="Red" BorderThickness="1"> </Border> </DataTemplate> </Setter.Value> </Setter> </Style> </ResourceDictionary> </Window.Resources> <Grid> <telerik:RadCartesianChart x:Name="MyChart"> <telerik:RadCartesianChart.HorizontalAxis> <telerik:DateTimeContinuousAxis LabelFitMode="Rotate"/> </telerik:RadCartesianChart.HorizontalAxis> <telerik:RadCartesianChart.VerticalAxis> <telerik:LinearAxis/> </telerik:RadCartesianChart.VerticalAxis> <telerik:RadCartesianChart.Grid> <telerik:CartesianChartGrid MajorLinesVisibility="XY"> <telerik:CartesianChartGrid.MajorXLineStyle> <Style TargetType="Line"> <Setter Property="Stroke" Value="Black"/> </Style> </telerik:CartesianChartGrid.MajorXLineStyle> <telerik:CartesianChartGrid.MajorYLineStyle> <Style TargetType="Line"> <Setter Property="Stroke" Value="Black"/> </Style> </telerik:CartesianChartGrid.MajorYLineStyle> </telerik:CartesianChartGrid> </telerik:RadCartesianChart.Grid> </telerik:RadCartesianChart> </Grid></Window>Code behind:
using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using System.ComponentModel;using System.Numerics;using Telerik.Windows.Controls.ChartView;namespace MathNETTest{ /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public ObservableCollection<MySeries> Series { get; set; } public ChartSeriesProvider SeriesProvider { get; set; } public MainWindow() { InitializeComponent(); this.DataContext = this; ObservableCollection<MyPoint> points = new ObservableCollection<MyPoint>(); MyPoint p = new MyPoint(new DateTime(2012, 9, 2), 4); points.Add(p); p = new MyPoint(new DateTime(2012, 9, 3), 6); points.Add(p); p = new MyPoint(new DateTime(2012, 9, 4), 4); points.Add(p); p = new MyPoint(new DateTime(2012, 9, 5), 3); points.Add(p); p = new MyPoint(new DateTime(2012, 9, 6), 1); points.Add(p); p = new MyPoint(new DateTime(2012, 9, 30), 3); points.Add(p); p = new MyPoint(new DateTime(2012, 10, 1), 1); points.Add(p); p = new MyPoint(new DateTime(2012, 10, 2), 2); points.Add(p); p = new MyPoint(new DateTime(2012, 10, 3), 3); points.Add(p); p = new MyPoint(new DateTime(2012, 10, 4), 1); points.Add(p); p = new MyPoint(new DateTime(2012, 10, 28), 4); points.Add(p); p = new MyPoint(new DateTime(2012, 10, 29), 2); points.Add(p); p = new MyPoint(new DateTime(2012, 11, 25), 2); points.Add(p); p = new MyPoint(new DateTime(2012, 12, 30), 5); points.Add(p); p = new MyPoint(new DateTime(2012, 12, 31), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 1), 2); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 2), 3); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 3), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 7), 2); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 8), 2); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 9), 3); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 10), 2); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 13), 3); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 14), 14); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 15), 6); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 16), 9); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 17), 5); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 20), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 21), 6); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 22), 6); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 23), 8); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 24), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 28), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 29), 20); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 30), 17); points.Add(p); p = new MyPoint(new DateTime(2013, 1, 31), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 3), 2); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 4), 15); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 5), 7); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 6), 10); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 7), 10); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 8), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 11), 6); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 12), 6); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 13), 9); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 14), 6); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 17), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 18), 9); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 19), 5); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 20), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 21), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 22), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 24), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 25), 11); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 26), 7); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 27), 8); points.Add(p); p = new MyPoint(new DateTime(2013, 2, 28), 8); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 1), 6); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 3), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 4), 13); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 5), 11); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 6), 10); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 7), 11); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 8), 5); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 10), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 11), 2); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 12), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 13), 6); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 14), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 15), 11); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 16), 10); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 17), 8); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 18), 5); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 19), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 20), 7); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 21), 3); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 23), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 25), 4); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 26), 2); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 27), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 3, 28), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 4, 9), 2); points.Add(p); p = new MyPoint(new DateTime(2013, 4, 18), 1); points.Add(p); p = new MyPoint(new DateTime(2013, 5, 20), 1); points.Add(p); this.Series = new ObservableCollection<MySeries>(); MySeries series = new MySeries(); series.Points = points; this.Series.Add(series); this.SeriesProvider = new ChartSeriesProvider(); this.SeriesProvider.Source = this.Series; CategoricalSeriesDescriptor sd = new CategoricalSeriesDescriptor(); sd.CategoryPath = "X"; sd.ValuePath = "Y"; sd.ItemsSourcePath = "Points"; sd.CollectionIndex = 0; sd.TypePath = "TelerikSeriesType"; this.SeriesProvider.SeriesDescriptors.Add(sd); this.MyChart.SeriesProvider = this.SeriesProvider; } } public class MySeries { public MySeries() { this.TelerikSeriesType = typeof(BarSeries); } public SolidColorBrush Color { get; set; } public ObservableCollection<MyPoint> Points { get; set; } public Type TelerikSeriesType{get; set;} } public class MyPoint { public MyPoint(DateTime x, double y) { X = x; Y = y; } public DateTime X { get; set; } public double Y { get; set; } }}