Hi,
I'm using xamChart to display an available capacity and the distributed capacity per job in relation with different chart types.
I found a solution to enable binding of series (http://community.infragistics.com/forums/p/38169/219968.aspx#219968) and added some styling properties like chart type, thickness and tooltip.
The charts and values show up correct, but I have some problems with the styling.When there are few datapoints in my series, the thickness binding of my Point-Chart won't work.When there are many datapoints in my series, the thickness binding of my Point-Chart works, but the tooltip of my StackedColumn-Chart won't show.
I've added a sample where you can reproduce this issue. The switch of these behaviours seems to be around 970 datapoints. If you enter 24 days with 39 the thickness will be ignored, if you enter 24 days and 40 jobs, the thickness is bound but the tooltip on the job's doesn't show.
I'm working with .Net4 and Infragistics Version 11.1.20111.2230, but switching to the current 12.1 Release shows the same behaviour.
Hope this can be solved.
Regards,
Bastian
Hello,
I am currently investigating the issue that you are having and I will need some more time. I will follow up with you by the end of tomorrow .
Thank you for your patience.
Sincerely,
Ekaterina
Developer Support Engineer
Infragistics
www.infragistics.com/support
Hello Ekaterina,
could you find out something about our issue?
We want to ship a release in the next week, so it would be nice if we can solve this problem in the next days.
I have been debugging into your application and I asked my developer colleges for assistance regarding that matter.
I will notify you as soon as I have a feedback.
Infragistics, Inc.
I just got an update from the developers team.
For the first thing, a PointSeries will override its thickness based on its marker thickness( with default of 1.0). So you may need to assign a marker to the point series and set its StrokeThickness to get that to apply.
As to your second issue, when you get over a certain number of points in the series, control goes into GDI rendering mode for performance reasons, which changes some of its semantics. This is why some of the tooltips go missing when you gets over a certain number of points and the behavior of the PointSeries is altered.
You can disable the fast rendering mode if you would like to following this link: http://community.infragistics.com/forums/p/37352/218819.aspx#218819
To get around the tooltip issue in fast rendering mode you can assign dataPoint tooltips using the DataMapping (specify a tooltip in there like you do for the point series).
Please let me know if you need further assistance regarding the discussed matter.
I disabled the fast rendering mode which solved our issue with the tooltip's. For now we can ignore the performance impact and I will try your suggestion with datapoint tooltips when I have more time.
Unfortunately our problem with the thickness of the PointSeries still exists.Instead of setting the StrokeThickness I bind a Marker with the desired StrokeThickness as you suggested. But there seems to be two issues with the marker:The point can't be smaller than the default size computed by the chart:
And the drawing area of the point is not adjusted when I want to draw bigger points:
Do you have any other suggestions how I can set the size of a point to a fixed value?
Hello Bastian,
I am very glad that the approach I have suggested helped solving your issue. Please let me know if you need any further assistance on the matter.
Krasimir
Hello Krasimir,
your change to the AddItem method works as expected and my chart now shows the points with the correct size.
Thanks a lot,
I am just checking if you require any further assistance on the matter.
Thank you for your patience while I was investigating the issue that you have described. After researching it, I can suggest using a DataTemplate for the Marker, instead of using the StrokeThickness. By doing so, the Maker will take the size that it needs in order to display the content of the DataTemplate. I have changed the AddItem method of the SeriesBindingInfo class as follows in order to achieve what I have described:
private void AddItem(object item) { if (SeriesTemplate == null) { return; } Series series = new Series(); if (item is DataSeries && (item as DataSeries).ChartType == ChartType.Point) { string tempate = @" <DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml""> <Grid> <Ellipse Width=""" + (item as DataSeries).Thickness + @""" " + @"Height=""" + (item as DataSeries).Thickness + @""" " + @"Fill=""" + (item as DataSeries).Color + @"""/> " + @"</Grid> </DataTemplate> "; Marker marker = new Marker { UseDataTemplate = true, Format = " ", DataTemplate = XamlReader.Parse(tempate) as DataTemplate, }; series.Marker = marker; } series.DataContext = item; SetSeriesBindings(series); TargetChart.Series.Add(series); }
I have also modified the sample application that you have attached, in order to implement the above changes.
Please let me know if you need any further assistance on the matter.