The main issue is that the annotation is considered in normal orientation when it's first created, so the annotation Size is "fixed" because there can't be a negative Size value.
If you override the OnMouseUp method of your AnnotationUI object, you can check the Data.Size property to find out the orientation before the size is fixed. If the height is negative, then it's vertically flipped. Below is what I did to fix the TriangleAnnotation example:
protected override bool OnMouseUp(AnnotationMouseEventArgs e)
{
if (this.State == AnnotationState.Creating)
{
SizeF sz = this.Data.Size;
if (sz.Height < 0)
{
sz.Height *= -1;
this.Data.Size = sz;
this.Data.Location = new PointF(this.Data.Location.X, this.Data.Location.Y - sz.Height);
this.Data.Mirror(MirrorDirection.Vertical, true);
}
}
return base.OnMouseUp(e);
}
Glenn Chittenden Jr.
Atalasoft Development Team