SciChart WPF 2D Charts > Annotations API > The CustomAnnotation Type
The CustomAnnotation Type

CustomAnnotation (single X1,Y1)

SciChart features a CustomAnnotation type which allows you to place a custom marker, image or control at at X1,Y1 location on the chart.

CustomAnnotation obeys the HorizontalAnchorPoint, VerticalAnchorPoint properties rather like TextAnnotation. These allow you to specify how the CustomAnnotation is aligned around the X1,Y1 point (e.g. aligned left, right, top, bottom or centre).

How HorizontalAnchorPoint and VerticalAnchorPoint affect an annotation placement

Creating a CustomAnnotation in XAML

The TradeMarkers example demonstrates how to create a CustomAnnotation and apply it to the chart. In this example, three types are created which inherit from CustomAnnotation and provide direct content. These are then placed on the chart at X1,Y1 values.

TradeMarkers Example showing Buy/Sell markers with News Bullets anchored to the bottom of the chart

Custom Buy, Sell, News markers are defined as sub-types of CustomAnnotation

CustomAnnotation (X1,Y1, X2, Y2)

The CustomAnnotation type only has a single X1,Y1 control point. If you need to create a CustomAnnotation with two control points (X1,Y1,X2,Y2), we recommend templating and/or subclassing the BoxAnnotation type.

For example, the following code

CustomAnnotation (X1,Y1, X2, Y2)
Copy Code
   <s:BoxAnnotation X1="2" X2="8" Y1="2" Y2="8" Background="#33FFFFFF"
                    BorderBrush="#55FFFFFF" BorderThickness="3" Padding="5">
         <ControlTemplate TargetType="s:BoxAnnotation">
            <Border x:Name="PART_BoxAnnotationRoot"
               Margin="{TemplateBinding Margin}"
               Background="{TemplateBinding Background}"
               BorderBrush="{TemplateBinding BorderBrush}"
               BorderThickness="{TemplateBinding BorderThickness}"
               CornerRadius="{TemplateBinding CornerRadius}">
               <Viewbox Margin="{TemplateBinding Padding}">
                  <TextBlock Text="Hello CustomAnnotation World!"></TextBlock>

Which results in: