Hi,
I'm using Infragistics 8.1 ultrawinchart.
In my chart I set a multilined text (simply a text containing \n ) to a tooltip label , and it's rendered with center-aligned text. Is it possible to change the text alignment ?
Thx in advance
PS
sorry for my bad english
I believe you can use html elemets with an existing string you use for the Tooltip such as:
stringValue.Append("<h1 align='center'>");stringValue.Append("Name: ");
stringValue.Append(DR["Name"]);stringValue.Append("</h1>");
Sorry but it does not work for me.
When I set for exaple a string like "<h1 align='left'>AAA</h1>", my label show exactly that string, with html tags visible.
Have I forget to set a property specifing that the string contains html elements ?
The customized string for the Tooltip doesn't have to be done in the DataItemOver / DataItemOut, it can be done in the page load, and the data points should be highlighted by default.
I will explain better my current approach:
1 - I've set Display prop for UltraChart tooltips to false ( --> no tooltip shown but no highlighting too)
2 - In dataitem over event I show my custom tooltip
3 - In dataitemout event I close my custom tooltip
The only thing that I still need is to highlight datapoint.
You said that I should use page load instead of dataitemover/out, but I can't found that event.... :(
Could you explain me better ?
thx
DataItemHover event may not be the best place to show tooltip, and the tooltip does not have to be turned off in order to show a customized tooltip. You can set the tooltip with a customized string it replaces the default tooltip, so you don't have to set it off.
By the way; in my previous response I mentioned 'page load' - what I mean was 'Form load', Sorry about the confussion.
You may also consider using IrenderLabel interface to customize a lable. Here is the help topic that shows how to implement it.
http://help.infragistics.com/Help/NetAdvantage/WinForms/2009.1/CLR2.0/html/Chart_Customize_Labels_Using_the_IRenderLabel_Interface.html
Probably I did't explain my problem well.
I already use IRenderLabel to customize the text of my toollTip labels;
my problem is that I need to customize the appearance of the tooltip, i.e. align the text on the left.
Correct me if I'm wrong but I guess it's not possible to modify the text alignment of the ultrachart default tooltip.
So I've tried to show an UltraTooltipManager (instead of the default), everytime the mouse hover an item in the chart (handling DataItemHover DataItemOut events)
That worked fine, but spawn an other problem:
without the default tooltip, items aren't highligted anymore when mouse hovering them, so I need to maually highlight them (but how ?)
Is there a better way to solve my problem(s) ?
The tooltip on the chart does not have detail formatting capability for the text; however; as I mentioned before, you could use our UltraToolTipManager to cutomize the formatting of the text that needs to be on the tooltip. You can add ultraToolTipManger component on the form, set the formatted text on ultraTooltipManager, and add the following code to show and hide in DataItemOver/Hide events:
ultraChart1.Tooltips.Format = Infragistics.UltraChart.Shared.Styles.TooltipStyle.None; ultraChart1.DataItemOver += new Infragistics.UltraChart.Shared.Events.DataItemOverEventHandler(ultraChart1_DataItemOver); ultraChart1.DataItemOut += new Infragistics.UltraChart.Shared.Events.DataItemOutEventHandler(ultraChart1_DataItemOut);
void ultraChart1_DataItemOut(object sender, Infragistics.UltraChart.Shared.Events.ChartDataEventArgs e) { ultraToolTipManager1.HideToolTip(); }
void ultraChart1_DataItemOver(object sender, Infragistics.UltraChart.Shared.Events.ChartDataEventArgs e) { ultraToolTipManager1.ShowToolTip(ultraChart1); }
Given that in infragistics 9.2 there's a bug that occurrs by setting tooltips Format to None (for an ultrachart docked under a ribbon, as shown here ), I can't use a custom tooltipmanager to change tooltip text alignment anymore .
Thus, I want to report a way I have found (actually very tricky), to change ultrachart tooltip text alignment.
Here's the code (you have to handle mouseMove ultraChart event)
private void ultraChart_MouseMove(object sender, MouseEventArgs e){ var innerTooltip = this.ultraChart.Tooltips.TooltipControl as Infragistics.Win.UltraWinChart.IGWinTooltip; if (innerTooltip != null) { if (innerTooltip.Scene != null) { foreach (var primitive in innerTooltip.Scene) { var txt = primitive as Infragistics.UltraChart.Core.Primitives.Text; if (txt != null) { txt.labelStyle.HorizontalAlign = StringAlignment.Near; } } } }}
I think it's very tricky because if you hide TooltipControl property to intellisense, probably the use of it can be dangerous...
So please, tell me whether it is a reasonable way or not.
Thanks in advance.
Marco
Sorry my mistake.
I set tooltip Display to Never instead of Format to None.
Now it works fine.
Thx for the help
Are you by any chance setting the Tooltip.Disapy to 'never'? If yes, then that affects on getting the datapoint highlighted.
Ok,
this is exactly what I'm doing now, but I still cannot show highlighting when mouse hover dataItems...
How can I do that ?