Hey,
We are kinda in problems with chartview's trackball issue. Every time we swap our serie's CombineMode and move mouse over chart, our program crashes. We are still running with Q3 -version (can't rush SP1 update as we have to pre-plan these ones). We have allready tested that in SP1 issue is fixed, as you have reported in release notes.
Do you happen to have any workaround for Q3's trackball issue, so that we could keep running with current version for couple more months?
Best Regards,
Toni Hämeenniemi
We are kinda in problems with chartview's trackball issue. Every time we swap our serie's CombineMode and move mouse over chart, our program crashes. We are still running with Q3 -version (can't rush SP1 update as we have to pre-plan these ones). We have allready tested that in SP1 issue is fixed, as you have reported in release notes.
Do you happen to have any workaround for Q3's trackball issue, so that we could keep running with current version for couple more months?
Best Regards,
Toni Hämeenniemi
3 Answers, 1 is accepted
0
Hi Toni,
Thank you for contacting us.
Yes, there is a workaround for this issue. You need to create the following class:
You can use this controller as follows:
I hope this helps.
Regards,
George
Telerik
Thank you for contacting us.
Yes, there is a workaround for this issue. You need to create the following class:
public
class
MyController : ChartTrackballController
{
protected
override
string
GetTrackballText(List<DataPointInfo> points)
{
StringBuilder result =
new
StringBuilder(
"<html>"
);
SortedDictionary<ChartSeries, List<DataPoint>> visiblePoints =
new
SortedDictionary<ChartSeries, List<DataPoint>>(
new
ChartSeriesComparer());
foreach
(DataPointInfo pointInfo
in
points)
{
if
(visiblePoints.ContainsKey(pointInfo.Series))
{
visiblePoints[pointInfo.Series].Add(pointInfo.DataPoint);
}
else
{
visiblePoints.Add(pointInfo.Series,
new
List<DataPoint>() { pointInfo.DataPoint });
}
}
int
counter = 0;
foreach
(ChartSeries series
in
visiblePoints.Keys)
{
for
(
int
i = 0; i < visiblePoints[series].Count; i++)
{
Color pointColor =
this
.GetColorForDataPoint(series, visiblePoints[series][i]);
string
color =
string
.Format(
"{0},{1},{2},{3}"
, pointColor.A, pointColor.R, pointColor.G, pointColor.B);
result.AppendFormat(
"<color={0}>{1}"
, color,
this
.GetPointText(visiblePoints[series][i]));
if
(i < visiblePoints[series].Count)
{
result.Append(
" "
);
}
}
counter++;
if
(counter < visiblePoints.Keys.Count)
{
result.Append(
"\n"
);
}
}
result.Append(
"</html>"
);
return
result.ToString();
}
class
ChartSeriesComparer : IComparer<ChartSeries>
{
public
ChartSeriesComparer()
{
}
public
int
Compare(ChartSeries x, ChartSeries y)
{
if
(!(x
is
IndicatorBase) && y
is
IndicatorBase)
{
return
-1;
}
else
if
(x
is
IndicatorBase && !(y
is
IndicatorBase))
{
return
1;
}
return
x.GetHashCode().CompareTo(y.GetHashCode());
}
}
}
You can use this controller as follows:
for
(
int
i = 0; i <
this
.radChartView1.Controllers.Count; i++)
{
if
(
this
.radChartView1.Controllers[i]
is
ChartTrackballController)
{
this
.radChartView1.Controllers.RemoveAt(i);
this
.radChartView1.Controllers.Add(
new
MyChartTrackballController());
break
;
}
}
I hope this helps.
Regards,
George
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WINFORMS.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0
Michael
Top achievements
Rank 1
answered on 30 Jan 2014, 04:18 PM
Looking at this example, what if I wanted to display the X axis value for the points being displayed in the TrackBallInfo Element.
The GetPointText method returns the text value as a string for the point it is passed, but only the Y coordinate.
What if I wanted the X coordinate value too? either as a double or as a string or whatever.
Thanks
Michael
The GetPointText method returns the text value as a string for the point it is passed, but only the Y coordinate.
result.AppendFormat("<
color
={0}>{1}", color,this.GetPointText(visiblePoints[series][i]));
What if I wanted the X coordinate value too? either as a double or as a string or whatever.
Thanks
Michael
0
Hello Michael,
Thank you for replying.
You can use the TrackBallPointTextNeeded event of the ChartSeries. For example, if you have AreaSeries:
I hope this helps.
Regards,
George
Telerik
Thank you for replying.
You can use the TrackBallPointTextNeeded event of the ChartSeries. For example, if you have AreaSeries:
foreach
(Telerik.WinControls.UI.AreaSeries series
in
this
.chart.Series)
{
series.TrackballPointTextNeeded += series_TrackballPointTextNeeded;
}
void
series_TrackballPointTextNeeded(
object
sender, TrackballPointTextNeededEventArgs e)
{
e.Text =
string
.Format(
" {0}"
, ((CategoricalDataPoint)e.Point).Category);
}
I hope this helps.
Regards,
George
Telerik
TRY TELERIK'S NEWEST PRODUCT - APPLICATION ANALYTICS for WINFORMS.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>