VintaSoft Imaging .NET SDK 14.0: Документация для .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
    )
    public: abstract System.Drawing.RectangleF* GetBoundingBox(
    System.Drawing.PointF location,
    System.Drawing.SizeF* size,
    float rotation
    )
    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 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

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