wpf-devexpress-dot-xpf-dot-charts-0eb44cbe.md
An additional note that can be anchored to a chart, pane, or series point.
Namespace : DevExpress.Xpf.Charts
Assembly : DevExpress.Xpf.Charts.v25.2.dll
NuGet Package : DevExpress.Wpf.Charts
public class Annotation :
ChartNotificationElement,
IWeakEventListener,
IHitTestableElement,
IInteractiveElement,
IScrollBarAnnotation
Public Class Annotation
Inherits ChartNotificationElement
Implements IWeakEventListener,
IHitTestableElement,
IInteractiveElement,
IScrollBarAnnotation
The following members return Annotation objects:
For more information about annotations, refer to the following help topic: Annotations.
This example demonstrates how to anchor an annotation to a series point.
To do this, specify the SeriesPointAnchorPoint.SeriesPoint property.
<dxc:Annotation Content="Annotation #1">
<dxc:Annotation.AnchorPoint>
<dxc:SeriesPointAnchorPoint SeriesPoint="{Binding ElementName=seriesPoint}"/>
</dxc:Annotation.AnchorPoint>
<dxc:Annotation.ShapePosition>
<dxc:RelativePosition Angle="60"
ConnectorLength="50"/>
</dxc:Annotation.ShapePosition>
</dxc:Annotation>
The following example creates an annotation that is anchored to a pane.
<dxc:ChartControl x:Name="chartControl">
<dxc:XYDiagram2D x:Name="diagram">
<dxc:XYDiagram2D.SecondaryAxesX>
<dxc:SecondaryAxisX2D x:Name="xAxis"/>
</dxc:XYDiagram2D.SecondaryAxesX>
<dxc:XYDiagram2D.SecondaryAxesY>
<dxc:SecondaryAxisY2D x:Name="yAxis"/>
</dxc:XYDiagram2D.SecondaryAxesY>
<dxc:XYDiagram2D.Panes>
<dxc:Pane x:Name="pane"/>
</dxc:XYDiagram2D.Panes>
<!--...-->
</dxc:XYDiagram2D>
</dxc:ChartControl>
using DevExpress.Xpf.Charts;
//...
private void Window_Loaded(object sender, RoutedEventArgs e) {
Annotation annotation = new Annotation();
annotation.Content = "Annotation";
annotation.AnchorPoint = new PaneAnchorPoint {
AxisXCoordinate = new AxisXCoordinate { AxisValue = new TimeSpan(0, 0, 5), Axis = xAxis },
AxisYCoordinate = new AxisYCoordinate { AxisValue = 100, Axis = yAxis },
Pane = pane
};
annotation.ShapePosition = new RelativePosition { Angle = 30, ConnectorLength = 60 };
chartControl.Annotations.Add(annotation);
}
Imports DevExpress.Xpf.Charts
'...
Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim annotation As Annotation = New Annotation()
annotation.Content = "Annotation"
annotation.AnchorPoint = New PaneAnchorPoint With {
.AxisXCoordinate = New AxisXCoordinate With {
.AxisValue = New TimeSpan(0, 0, 5),
.Axis = xAxis
},
.AxisYCoordinate = New AxisYCoordinate With {
.AxisValue = 100,
.Axis = yAxis
},
pane
}
annotation.ShapePosition = New RelativePosition With {
.Angle = 30,
.ConnectorLength = 60
}
chartControl.Annotations.Add(annotation)
End Sub
If the chart is bound to data and you want to anchor an annotation to a series point, use the ChartControl.BoundDataChanged event to access the point collection. The following example creates an annotation for each point of a spline series.
<dxc:ChartControl x:Name="chartControl"
BoundDataChanged="chartControl_BoundDataChanged">
<dxc:XYDiagram2D x:Name="diagram">
<dxc:SplineSeries2D>
<!--...-->
</dxc:SplineSeries2D>
</dxc:XYDiagram2D>
</dxc:ChartControl>
using DevExpress.Xpf.Charts;
//...
private void chartControl_BoundDataChanged(object sender, RoutedEventArgs e) {
SplineSeries2D series = (SplineSeries2D)diagram.Series[0];
if (series.Points.Count > 0) {
for (int i = 0; i < series.Points.Count; i++) {
chartControl.Annotations.BeginInit();
Annotation annotation = new Annotation() {
Content = series.Points[i].Value.ToString()
};
annotation.AnchorPoint = new SeriesPointAnchorPoint() {
SeriesPoint = series.Points[i]
};
annotation.ShapePosition = new RelativePosition() {
Angle = 0,
ConnectorLength = 0
};
chartControl.Annotations.Add(annotation);
chartControl.Annotations.EndInit();
}
}
}
Imports DevExpress.Xpf.Charts
'...
Private Sub chartControl_BoundDataChanged(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim series As SplineSeries2D = CType(diagram.Series(0), SplineSeries2D)
If series.Points.Count > 0 Then
For i As Integer = 0 To series.Points.Count - 1
chartControl.Annotations.BeginInit()
Dim annotation As Annotation = New Annotation() With {
.Content = series.Points(i).Value.ToString()
}
annotation.AnchorPoint = New SeriesPointAnchorPoint() With {
.SeriesPoint = series.Points(i)
}
annotation.ShapePosition = New RelativePosition() With {
.Angle = 0,
.ConnectorLength = 0
}
chartControl.Annotations.Add(annotation)
chartControl.Annotations.EndInit()
Next
End If
End Sub
Show 11 items
Object DispatcherObject DependencyObject Visual UIElement FrameworkElement Control ChartElementBase ChartElement DevExpress.Xpf.Charts.ChartNotificationElement Annotation
See Also