Hi :¬)We have large data sets and we augment the scatercharts we do with robust curve fitting functionsWe have found that when a mouse leave the chart this causes a Major regenerations of the chartI am assuming this is to clean up any tooltips that might be leftIt still does this even if Tooltip::Never is used.I had this problem 3 years ago but it was fixed but its crept back over the yearsI am now having make assumptions and edit the source code to get a usable program.
I have included the Source changes I have made and I would be very gratefull if you can think of a stock way to stop OnMouseLeave eventualy causing chart.Dirty to be set to true thus causing major recreation of chart.UltraWinChart.cs: line 6016 - current 2010.1 SR1 source releaseprotected override void OnMouseLeave(EventArgs e) { //MAC this causes massive rebuild of charts when mouse leaves the chart //MAC we can not have this it makes our program unusable :¬( //MAC even if you have "Tooltips:Never" maybe it should check this //MAC From what i can see "this.Tool" is not major part of the ultrachart system //MAC damage happens here.. because of "IChartComponent.Invalidate" makes chart.Dirty //Infragistics2.Win.UltraWinChart.v10.1.dll!Infragistics.Win.UltraWinChart.UltraChart.Infragistics.UltraChart.Resources.IChartComponent.Invalidate(Infragistics.UltraChart.Shared.Styles.CacheLevel cacheLevel = LayerLevelCache) Line 5498 C# //Infragistics2.Win.UltraWinChart.v10.1.dll!Infragistics.Win.UltraWinChart.InteractionTool.InvalidateView(Infragistics.UltraChart.Shared.Styles.CacheLevel cacheLevel = LayerLevelCache) Line 187 + 0xf bytes C# //Infragistics2.Win.UltraWinChart.v10.1.dll!Infragistics.Win.UltraWinChart.DefaultTool.Stop() Line 192 + 0xd bytes C# //Infragistics2.Win.UltraWinChart.v10.1.dll!Infragistics.Win.UltraWinChart.UltraChart.Tool.set(Infragistics.Win.UltraWinChart.IInteractionTool value = null) Line 5890 + 0xf bytes C# //Infragistics2.Win.UltraWinChart.v10.1.dll!Infragistics.Win.UltraWinChart.UltraChart.OnMouseLeave(System.EventArgs e = {System.EventArgs}) Line 6018 + 0xa bytes C# // //this.Tool = null; base.OnMouseLeave(e); }
Many thanks as usual :¬)
Teodor made the necessary adjustments in DefaultTool.Stop() - the view will no longer be invalidated if crosshairs and tooltips are disabled.
This fix will be included in an upcoming service release.
bmcloughlin said:maybe if no tooltips used dont flag it dirty?
yes, that would certainly be the low-risk way to fix it, and was one of the first solutions that occurred to me. we're just going to do a little more investigation and testing before settling on a solution.
in the meantime, my colleague Teodor suggested using inheritance to solve this instead of modifying the source code:
public class CustomUltraChart : UltraChart
{
public CustomUltraChart() { }
protected override void OnMouseLeave(EventArgs e) { }
}
Many thanks David for loooking into this I would be nice to get back to stock releases of Infragistics :¬)
We dont use any adornment layers or tooltips maybe the chart.dirty is in case of those type of things
maybe if no tooltips used dont flag it dirty? but i dont know your soft as good as yourselves :¬)
i'm looking into possible solutions, along with the developer who redid the mouse interaction code back in 2008 volume 2. stay tuned...
Bump due to change in support system - "Faster Responses, More Content and Better Infragistics Help" 11 may 2010