Hi,
I'm trying this code, but it doesnt draw a grid:
ChartMain = new RadCartesianChart();
Style style = new Style();
style.TargetType = typeof(Line);
style.Setters.Add(new Setter(Line.StrokeProperty, Brushes.Black));
style.Setters.Add(new Setter(Line.StrokeThicknessProperty, new Thickness(2.0)));
CartesianChartGrid chartGrid = new CartesianChartGrid();
chartGrid.MajorLinesVisibility = GridLineVisibility.XY;
chartGrid.MajorYLineStyle = style;
chartGrid.MajorXLineStyle = style;
ChartMain.Grid = chartGrid;
I'm trying this code, but it doesnt draw a grid:
ChartMain = new RadCartesianChart();
Style style = new Style();
style.TargetType = typeof(Line);
style.Setters.Add(new Setter(Line.StrokeProperty, Brushes.Black));
style.Setters.Add(new Setter(Line.StrokeThicknessProperty, new Thickness(2.0)));
CartesianChartGrid chartGrid = new CartesianChartGrid();
chartGrid.MajorLinesVisibility = GridLineVisibility.XY;
chartGrid.MajorYLineStyle = style;
chartGrid.MajorXLineStyle = style;
ChartMain.Grid = chartGrid;
3 Answers, 1 is accepted
0
Hi Alex,
This doesn't work because the StrokeThickness property of the Line element is not of type Thickness and setting it to such object is throwing an exception. The StrokeThickness property accepts a value of type Double.
The following code snippet demonstrates creating of RadCartesianChart in code:
Please let me know if this helps.
Regards,
Martin
Telerik
This doesn't work because the StrokeThickness property of the Line element is not of type Thickness and setting it to such object is throwing an exception. The StrokeThickness property accepts a value of type Double.
style.Setters.Add(new Setter(Line.StrokeThicknessProperty, 2.0));The following code snippet demonstrates creating of RadCartesianChart in code:
public partial class MainPage : Window{ public MainPage() { InitializeComponent(); var list = new List<DataItem>(); Random r = new Random(); for (int i = 0; i < 10; i++) { list.Add(new DataItem { Date = DateTime.Now.AddMonths(i), Value = r.Next(30, 300) }); } var ChartMain = new RadCartesianChart(); ChartMain.VerticalAxis = new LinearAxis(); ChartMain.HorizontalAxis = new DateTimeContinuousAxis(); ChartMain.Series.Add(new AreaSeries() { CategoryBinding = new PropertyNameDataPointBinding("Date"), ValueBinding = new PropertyNameDataPointBinding("Value"), ItemsSource = list }); Style style = new Style(); style.TargetType = typeof(Line); style.Setters.Add(new Setter(Line.StrokeProperty, Brushes.Black)); style.Setters.Add(new Setter(Line.StrokeThicknessProperty, 2.3)); CartesianChartGrid chartGrid = new CartesianChartGrid(); chartGrid.MajorLinesVisibility = GridLineVisibility.XY; chartGrid.MajorYLineStyle = style; chartGrid.MajorXLineStyle = style; ChartMain.Grid = chartGrid; this.layoutGrid.Children.Add(ChartMain); } }}public class DataItem{ public DateTime Date { get; set; } public Double Value { get; set; }}Please let me know if this helps.
Regards,
Martin
Telerik
Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
0
Alex
Top achievements
Rank 1
answered on 23 Sep 2014, 10:20 AM
Hi Martin,
Thanks for your reply, sadly it doesn't work for me.
Might that be because how I use my chart further?
I write it to a png, without displaying on a visual tree.
Chart and Legend appear in a png, but ChartGrid - doesnt.
Thanks for your reply, sadly it doesn't work for me.
Might that be because how I use my chart further?
I write it to a png, without displaying on a visual tree.
Chart and Legend appear in a png, but ChartGrid - doesnt.
// Create a Visual container and add Legend and Chart to itStackPanel stackpanel = new StackPanel() { Orientation = Orientation.Vertical };chart.Width = Convert.ToDouble(App.Current.Resources["chartwidth"]);chart.Height = Convert.ToDouble(App.Current.Resources["chartheight"]);legend.Width = Convert.ToDouble(App.Current.Resources["legendwidth"]);legend.Height = Convert.ToDouble(App.Current.Resources["legendheight"]);stackpanel.Children.Add(legend);stackpanel.Children.Add(chart);stackpanel.Width = chart.Width;stackpanel.Height = chart.Height + legend.Height;legend.Measure(new Size(legend.Width, legend.Height));legend.Arrange(new Rect(new Size(legend.Width, legend.Height)));chart.Measure(new Size(chart.Width, chart.Height));chart.Arrange(new Rect(new Size(chart.Width, chart.Height)));legend.UpdateLayout();chart.UpdateLayout();stackpanel.UpdateLayout();stackpanel.Measure(new Size(stackpanel.Width, stackpanel.Height));stackpanel.Arrange(new Rect(new Size(stackpanel.Width, stackpanel.Height)));returnValue = @"C:\\RegisterDeviceService\\Images\\" + date + "_" + type + ".png";SaveToPng(stackpanel, returnValue);0
Hi Alex,
Thank you for the code snippet. I tested it but I wasn't able to reproduce the issue. Can you please take a look at the attached project and let me know if I am missing something? Also, it would be helpful if you can tell me how exactly you are saving the PNG.
Thank you for any help you can provide.
Regards,
Martin
Telerik
Thank you for the code snippet. I tested it but I wasn't able to reproduce the issue. Can you please take a look at the attached project and let me know if I am missing something? Also, it would be helpful if you can tell me how exactly you are saving the PNG.
Thank you for any help you can provide.
Regards,
Martin
Telerik
Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
