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

The BoxAnnotation draws a rectangle at X1,Y1,X2,Y2 where coordinates are data-values. The BoxAnnotation supports BorderThickness, BorderBrush, CornerRadius and Background. The BoxAnnotation supports user dragging when IsEditable = true.

 

 

Declaring a BoxAnnotation in XAML

Example Title
Copy Code
<!-- Where xmlns:s="http://schemas.abtsoftware.co.uk/scichart" -->
<s:SciChartSurface>
   <s:SciChartSurface.Annotations>
      <!-- Declares a BoxAnnotation at X1=3, X2=3.5, Y1=4, Y2=5 -->
      <!-- The annotation will move with the chart as you zoom and pan -->
      <s:BoxAnnotation Background="#55279B27" BorderBrush="#279B27" BorderThickness="1"
                       CornerRadius="3" X1="3.5" X2="5" Y1="4" Y2="5"/>  
   </s:SciChartSurface.Annotations>
</s:SciChartSurface>

Declaring a BoxAnnotation in Code

Declaring a BoxAnnotation
Copy Code
var sciChartSurface = new SciChartSurface();
sciChartSurface.Annotations.Add(new BoxAnnotation()
{
   BorderBrush = new SolidColorBrush(Colors.FromArgb(0xFF, 0x27, 0x9B, 0x27)),
   Background = new SolidColorBrush(Colors.FromArgb(0x55, 0x27, 0x9B, 0x27)),
   BorderThickness = new Thickness(1),
   CornerRadius = new Thickness(1),
   X1 = 3,
   X2 = 3.5,
   Y1 = 4,
   Y2 = 5,
   IsEditable = true,
});

Templating the BoxAnnotation

The Default Style and ControlTemplate for the BoxAnnotation is defined below. You can template a BoxAnnotation if you want to create a custom annotation with four control points. Just ensure you keep the PART_BoxAnnotationRoot. Any content you put inside it can be custom content.

Templating the BoxAnnotation
Copy Code
<!--  BoxAnnotation  -->
<Style BasedOn="{StaticResource AnnotationBaseStyle}" TargetType="a:BoxAnnotation">
   <Setter Property="Template">
      <Setter.Value>
         <ControlTemplate TargetType="a:BoxAnnotation">
            <Border x:Name="PART_BoxAnnotationRoot"
                  Margin="{TemplateBinding Margin}"
                  Background="{TemplateBinding Background}"
                  BorderBrush="{TemplateBinding BorderBrush}"
                  BorderThickness="{TemplateBinding BorderThickness}"
                  CornerRadius="{TemplateBinding CornerRadius}" />
         </ControlTemplate>
      </Setter.Value>
   </Setter>
</Style>