Hello, a few questions about this feature:
1) Is it possible to show a tooltip on annotations?
2) Is it possible to have a click event (mousedown / mouseup should be fine too) on annotations to do something in response of a click?
3) Is it possible to update the way an annotation looks based on the mouse being over the annotation? I tried with style triggers but it didn't work.
Thanks!
1) Is it possible to show a tooltip on annotations?
2) Is it possible to have a click event (mousedown / mouseup should be fine too) on annotations to do something in response of a click?
3) Is it possible to update the way an annotation looks based on the mouse being over the annotation? I tried with style triggers but it didn't work.
Thanks!
3 Answers, 1 is accepted
0
Hi Carlo,
Thanks for contacting us.
1, 2, 3 - Yes, you just need to set the IsHitTestVisible property to true (all WPF mouse events are supported).
Here's an example:
I hope this helps.
Regards,
Petar Kirov
Telerik
Thanks for contacting us.
1, 2, 3 - Yes, you just need to set the IsHitTestVisible property to true (all WPF mouse events are supported).
Here's an example:
<telerik:CartesianGridLineAnnotation Axis="{Binding ElementName=vAxis}" Value="30" StrokeThickness="4" ToolTip="This is a tooltip" IsHitTestVisible="True" MouseEnter="CartesianGridLineAnnotation_MouseEnter" MouseLeave="CartesianGridLineAnnotation_MouseLeave" MouseLeftButtonUp="CartesianGridLineAnnotation_MouseLeftButtonUp"/>private void CartesianGridLineAnnotation_MouseEnter(object sender, MouseEventArgs e){ var annotation = sender as CartesianGridLineAnnotation; annotation.StrokeThickness += 2;}private void CartesianGridLineAnnotation_MouseLeave(object sender, MouseEventArgs e){ var annotation = sender as CartesianGridLineAnnotation; annotation.StrokeThickness -= 2;}private void CartesianGridLineAnnotation_MouseLeftButtonUp(object sender, MouseButtonEventArgs e){ var annotation = sender as CartesianGridLineAnnotation; annotation.Effect = annotation.Effect == null ? new BlurEffect() : null;}I hope this helps.
Regards,
Petar Kirov
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
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
Carlo
Top achievements
Rank 1
answered on 24 Sep 2013, 05:23 PM
Hello Petar, thanks for your reply.
They all worked except MouseLeftButtonUp, I tried both the tunnel (Preview) and bubbling strategies, but they did not do the trick. Also, I'm trying it in a CartesianCustomAnnotation and I'm creating them through code, I wonder if that makes a difference:
They all worked except MouseLeftButtonUp, I tried both the tunnel (Preview) and bubbling strategies, but they did not do the trick. Also, I'm trying it in a CartesianCustomAnnotation and I'm creating them through code, I wonder if that makes a difference:
foreach (MyItem item in items) { CartesianCustomAnnotation customAnnotation = new CartesianCustomAnnotation { HorizontalAxis = MyChartHorizontalAxis, VerticalAxis = MyChartVerticalAxis, HorizontalValue = item.StateChangedTime, IsHitTestVisible = true, Content = new Border() { Background = new SolidColorBrush(Colors.Red), Child = new TextBlock { Text = "Completed Item" } }, Style = (Style)FindResource("CompletedWorkOrderAnnotationStyle") }; MyChartControl.Annotations.Add(customAnnotation); customAnnotation.MouseLeftButtonUp += customAnnotation_MouseLeftButtonUp; // Doesn't work customAnnotation.MouseEnter += customAnnotation_MouseEnter; customAnnotation.MouseLeave += customAnnotation_MouseLeave; }0
Hi Carlo,
I believe that you have added a ChartPanAndZoomBehavior to the RadCartesianChart.Behaviors collection with its DragMode set to Pan or Zoom (default is Zoom). If that is so, the chart will capture some mouse events (used for panning or zooming) and as a consequence annotations will not receive them.
To workaround this, you can use a combination of RadCartesianChart.MouseLeftButtonUp and the annotation.MouseLeftButtonDown (or only button down, if this is enough for you):
Petar Kirov
Telerik
I believe that you have added a ChartPanAndZoomBehavior to the RadCartesianChart.Behaviors collection with its DragMode set to Pan or Zoom (default is Zoom). If that is so, the chart will capture some mouse events (used for panning or zooming) and as a consequence annotations will not receive them.
To workaround this, you can use a combination of RadCartesianChart.MouseLeftButtonUp and the annotation.MouseLeftButtonDown (or only button down, if this is enough for you):
Point lastMouseLeftButtonDownPosition = new Point(-1, -1);void customAnnotation_MouseLeftButtonDown(object sender, MouseButtonEventArgs e){ this.lastMouseLeftButtonDownPosition = e.GetPosition(this.chart);}void chart_MouseLeftButtonUp(object sender, MouseButtonEventArgs e){ var pos = e.GetPosition(this.chart); var cp = this.customAnnotation.FindChildByType<ContentPresenter>(); double left = Canvas.GetLeft(cp); double top = Canvas.GetTop(cp); double width = cp.ActualWidth; double height = cp.ActualHeight; //Ensure that lastMouseLeftButtonDownPosition is within the annotation rectangle}Regards,
Petar Kirov
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
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 >>