VintaSoft Imaging .NET SDK 15.2: Документация для .NET разработчика
Vintasoft.Imaging.Annotation Namespace / AnnotationData Class / GetBoundingBox Methods / GetBoundingBox(PointF,SizeF,Single) Method
Синтаксис Example Требования Смотрите также
В этом разделе
GetBoundingBox(PointF,SizeF,Single) Метод (AnnotationData)
В этом разделе
Возвращает ограничивающий прямоугольник аннотации, если аннотация будет иметь указанное местоположение, размер и поворот.
Синтаксис
'Declaration

Public Overloads MustOverride Function GetBoundingBox( _
ByVal location
Расположение аннотации в аппаратно-независимых пикселях (1/96 дюйма).
As System.Drawing.PointF, _
ByVal size
Размер аннотации в аппаратно-независимых пикселях (1/96 дюйма).
As System.Drawing.SizeF, _
ByVal rotation
Поворот аннотации в градусах.
As Single _
) As System.Drawing.RectangleF
public abstract System.Drawing.RectangleF GetBoundingBox(
System.Drawing.PointF location,
System.Drawing.SizeF size,
float rotation
)

Parameters

location
Расположение аннотации в аппаратно-независимых пикселях (1/96 дюйма).
size
Размер аннотации в аппаратно-независимых пикселях (1/96 дюйма).
rotation
Поворот аннотации в градусах.

Return Value

Ограничительный прямоугольник аннотации.
Пример

Вот пример, показывающий, как ограничить угол поворота аннотации, чтобы она не выходила за границы указанной области:


Private _boundingArea As System.Drawing.RectangleF
Private _annotation As Vintasoft.Imaging.Annotation.AnnotationData

Private Sub SubscribeOnPropertyChanging()
    AddHandler _annotation.PropertyChanging, New System.EventHandler(Of Vintasoft.Imaging.ObjectPropertyChangingEventArgs)(AddressOf annotation_PropertyChanging)
End Sub

Private Sub annotation_PropertyChanging(sender As Object, e As Vintasoft.Imaging.ObjectPropertyChangingEventArgs)
    If e.PropertyName = "Rotation" Then
        Dim boundingBox As System.Drawing.RectangleF = _annotation.GetBoundingBox(_annotation.Location, _annotation.Size, CSng(e.NewValue))

        If Not _boundingArea.Contains(boundingBox) Then
            e.Cancel = True
        End If
    End If
End Sub


System.Drawing.RectangleF _boundingArea;
Vintasoft.Imaging.Annotation.AnnotationData _annotation;

void SubscribeOnPropertyChanging()
{
    _annotation.PropertyChanging += 
        new System.EventHandler<Vintasoft.Imaging.ObjectPropertyChangingEventArgs>(annotation_PropertyChanging);
}

void annotation_PropertyChanging(object sender, Vintasoft.Imaging.ObjectPropertyChangingEventArgs e)
{
    if (e.PropertyName == "Rotation")
    {
        System.Drawing.RectangleF boundingBox = _annotation.GetBoundingBox(
            _annotation.Location, _annotation.Size, (float)e.NewValue);

        if (!_boundingArea.Contains(boundingBox))
        {
            e.Cancel = true;
        }
    }
}

Требования

Целевые платформы: .NET 11; .NET 10; .NET 9; .NET 8; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

Смотрите также