VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
В этом разделе
    Вид аннотации в WinForms
    В этом разделе
    Класс AnnotationView всегда создается на основе класса AnnotationData и определяет внешний вид аннотации и способ взаимодействия пользователя с аннотацией.
    Связь между классами, производными от AnnotationData и AnnotationView, регистрируется с помощью метода AnnotationViewFactory.RegisterViewForAnnotationData.

    Как и в случае с классами, производными от класса AnnotationData, классы, производные от класса AnnotationView, делятся на 3 типа:
    Класс AnnotationView содержит свойство AnnotationView.Data, которое позволяет получить ссылку на связанный экземпляр класса AnnotationData. Также класс AnnotationView содержит набор свойств, аналогичных свойствам класса AnnotationData, которые позволяют передавать свойства аннотации через AnnotationView.

    Вот C#/VB.NET код, который демонстрирует, как создать вид для аннотации EllipseAnnotationData:
    public static Vintasoft.Imaging.Annotation.UI.AnnotationView CreateViewForEllipseAnnotationData(
        Vintasoft.Imaging.Annotation.EllipseAnnotationData ellipseAnnotation)
    {
        return new Vintasoft.Imaging.Annotation.UI.EllipseAnnotationView(ellipseAnnotation);
    }
    
    Public Shared Function CreateViewForEllipseAnnotationData(ellipseAnnotation As Vintasoft.Imaging.Annotation.EllipseAnnotationData) As Vintasoft.Imaging.Annotation.UI.AnnotationView
        Return New Vintasoft.Imaging.Annotation.UI.EllipseAnnotationView(ellipseAnnotation)
    End Function
    


    Прямоугольники, ограничивающие аннотацию

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

    Выделение аннотации в WinForms просмотрщике изображений с аннотациями

    Каждая аннотация может получить фокус в просмотрщике изображений. Когда аннотация сфокусирована, вокруг нее появляется прямоугольник выделения, который можно трансформировать (масштабировать, зеркально отображать, вращать), при этом аннотация будет трансформироваться пропорционально прямоугольнику выделения.

    Вид аннотаций, основанных на наборе точек, кроме того, можно трансформировать с помощью точек. Когда аннотация выбрана - все ее точки становятся выбранными, пользователь может изменить расположение каждой точки с помощью перетаскивания.

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

    Режим выбора/преобразования аннотаций, основанных на наборе точек, можно изменить с помощью свойства LineAnnotationViewBase.GripMode.


    Построение и преобразование аннотаций в WinForms просмотрщике изображений с аннотациями.

    Свойство AnnotationView.Builder определяет интерактивный контроллер, который используется для построения аннотаций.
    Свойство AnnotationView.Transformer определяет интерактивный контроллер, который используется для преобразования аннотаций.

    Кроме того, класс AnnotationView имеет свойство AnnotationView.InteractionController, которое определяет используемый в данный момент интерактивный контроллер.
    Подробную информацию о построении и преобразовании аннотаций можно найти в статье: Создание и преобразование аннотаций в WinForms .


    Отслеживание состояния аннотации

    Класс AnnotationView предоставляет события, которые позволяют отслеживать состояние аннотации:

    Коллекция аннотаций

    Класс AnnotationViewCollection всегда создается на основе класса AnnotationDataCollection и представляет собой коллекцию видов аннотаций, связанных с данными аннотаций из AnnotationDataCollection.
    Класс AnnotationViewCollection синхронно вносит изменения в свою коллекцию и в связанную AnnotationDataCollection.
    Класс AnnotationViewCollection предоставляет возможность добавлять, удалять, изменять порядок, изменять порядок элементов, преобразовывать в массив элементов AnnotationView и получать доступ к AnnotationDataCollection. Также класс AnnotationViewCollection позволяет: