VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
В этом разделе
    Просмотр миниатюр с аннотациями в WinForms
    В этом разделе
    Класс AnnotatedThumbnailViewer является производным от класса ThumbnailViewer и предназначен для просмотра миниатюр изображений с аннотациями.

    Класс AnnotatedThumbnailViewer расширяет функциональность класса ThumbnailViewer и позволяет:
    Вот C#/VB.NET код, который демонстрирует, как загрузить изображения с аннотациями из файла и отобразить их миниатюры с аннотациями:
    void LoadImagesWithAnnotation(
        Vintasoft.Imaging.Annotation.UI.AnnotatedThumbnailViewer annotatedThumbnailViewer, string filename)
    {
        annotatedThumbnailViewer.Images.Add(filename);
    }
    
    Private Sub LoadImagesWithAnnotation(annotatedThumbnailViewer As Vintasoft.Imaging.Annotation.UI.AnnotatedThumbnailViewer, filename As String)
        annotatedThumbnailViewer.Images.Add(filename)
    End Sub
    


    Класс AnnotatedThumbnailViewer можно использовать отдельно или вместе с классом AnnotationViewer.

    Если класс AnnotatedThumbnailViewer используется отдельно, то он просто показывает аннотации на миниатюрах.

    Если класс AnnotatedThumbnailViewer используется вместе с классом AnnotationViewer, то он отображает аннотации на миниатюрах и в то же время выполняет одновременное обновление миниатюры активного изображения в AnnotationViewer, когда аннотации, которые связаны с миниатюрой, изменяются (добавляется новая аннотация, трансформируется существующая аннотация и т. д.).


    Для повышения производительности приложения можно не обновлять миниатюру активного изображения после каждого изменения, связанного с его аннотациями, а только после завершения преобразования аннотации, например, когда вращение аннотации полностью завершено.
    Вот C#/VB.NET код, который позволяет обновлять миниатюру активного изображения только после завершения преобразования аннотации:
    Vintasoft.Imaging.Annotation.UI.AnnotatedThumbnailViewer _annotatedThumbnailViewer1 = 
        new Vintasoft.Imaging.Annotation.UI.AnnotatedThumbnailViewer();
    Vintasoft.Imaging.Annotation.UI.AnnotationViewer _annottionViewer1 = 
        new Vintasoft.Imaging.Annotation.UI.AnnotationViewer();
    
    bool _isAnnotationBeginInit = false;
    bool _isAnnotationTransforming = false;
    bool _showAnnotationTransformationOnThumbnail = false;
    
    void annotationViewer1_AnnotationTransformingStarted(object sender, 
        Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationViewEventArgs e)
    {
        _isAnnotationTransforming = true;
        if (!_showAnnotationTransformationOnThumbnail)
        {
            _isAnnotationBeginInit = true;
            e.AnnotationView.Data.BeginInit();
        }
    }
    
    void annotationViewer1_AnnotationTransformingFinished(object sender, 
        Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationViewEventArgs e)
    {
        _isAnnotationTransforming = false;
        if (_isAnnotationBeginInit)
        {
            _isAnnotationBeginInit = false;
            e.AnnotationView.Data.EndInit();
        }
    }
    
    Private _annotatedThumbnailViewer1 As New Vintasoft.Imaging.Annotation.UI.AnnotatedThumbnailViewer()
    Private _annottionViewer1 As New Vintasoft.Imaging.Annotation.UI.AnnotationViewer()
    
    Private _isAnnotationBeginInit As Boolean = False
    Private _isAnnotationTransforming As Boolean = False
    Private _showAnnotationTransformationOnThumbnail As Boolean = False
    
    Private Sub annotationViewer1_AnnotationTransformingStarted(sender As Object, e As Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationViewEventArgs)
        _isAnnotationTransforming = True
        If Not _showAnnotationTransformationOnThumbnail Then
            _isAnnotationBeginInit = True
            e.AnnotationView.Data.BeginInit()
        End If
    End Sub
    
    Private Sub annotationViewer1_AnnotationTransformingFinished(sender As Object, e As Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationViewEventArgs)
        _isAnnotationTransforming = False
        If _isAnnotationBeginInit Then
            _isAnnotationBeginInit = False
            e.AnnotationView.Data.EndInit()
        End If
    End Sub