I've worked with both the UltraGrid and the UltraChart in C# .NET. They are both quite nice and have nice features. However, if you want something out-of-the-ordinary, these are not the controls to use.
To try them out, the controls are quite straight forward and even provide wizzards. However, if you want to further customise a control, you need to change whole combinations of properties and they are NOT DOCUMENTED at all. The help file is quite empty. The few examples that are provided always show the obvious, like the method without the parameters, in stead of the difficult functionality. You can only try to browse in the Infragistics use groups. Infragistics usual reaction on questions or problem reports, is the advice to upgrade, which usually doesn't help for the problem you have. After such an upgrade some feature didn't seem to work anymore. As it turned out, the default value of some property had changed. The chart also had a thing crashing my whole app. I could program around it by disabling the whole chart before painting and then, at the Paint event, enabling it again.
The chart's arrows are very long and that doesn't make the chart easier to understand, and you can't adjust their lenght. There is no way to control the length of the labels, either on the axis or in the legend. Moreover, the spaces between the legend items are determined by the chart itself and differ for each chart. There is no way to determine how wide the space will be, it looks as if Infragistics determines it randomly. So, either I truncate it too early, leaving empty space, or the text disappears below the legend items. Infragistics told me they would improve the access to the labels in a further release, although not this actual problem. I could not get the logaritmic axis scale work; either the axis labels remained empty or the control crashed my app.
Using a PrintDialog before printing had to be implemented in completely different ways for both controls. With the chart it could be nice implemented. With the grid, strangely, I had to call Print first, and it wasn't until its InitializePrint event, that I could show the PrintDialog and adjust the settings.