Отображение миниатюры для файлов изображений в каталоге в C#

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

Эта программа на самом деле намного проще, чем вы думаете, потому что элементы управления выполняют всю работу по размещению изображений. Программа содержит (зеленый) FlowLayoutPanel с свойством AutoScroll, установленным на true. Программе нужно только отбросить на нее элементы управления PictureBox, и она автоматически упорядочивает их и при необходимости отображает полосы прокрутки.

Следующий код показывает, как программа отображает миниатюры, когда изменяется каталог в TextBox.

Этот код определяет элементы управления PictureBox, которые он использует для отображения изображений. Он также определяет константы ThumbWidth и ThumbHeight, которые определяют размер эскиза.

txtDirectory_TextChanged выполняет большую часть работы. Сначала он удаляет обработчик события DoubleClick из любых существующих элементов управления PictureBox и удаляет их. Он удаляет все дочерние элементы управления из flpThumbnails FlowLayoutPanel и сбрасывает список PictureBoxes.

Далее код использует Directory.Exists, чтобы узнать, существует ли каталог, указанный в TextBox, и возвращается, если он этого не делает. Это происходит, например, если вы введете TextBox и не закончили вводить имя каталога.

Затем код перебирает массив шаблонов файлов, ищущих png, gif, jpg и другие форматы файлов изображений. Для каждого формата код использует метод Directory.GetFiles для поиска файлов, соответствующих шаблону. Этот метод возвращает массив имен файлов. В коде используется имя_файла list AddRange, чтобы добавить все файлы, найденные в списке. После поиска файлов, соответствующих всем шаблонам, программа сортирует список filenames.

Теперь программа перебирает имена файлов. Для каждого файла он создает PictureBox, устанавливает его размер в правый размер миниатюры и загружает соответствующий файл в свойство PictureBox элемента управления Изображение .

Затем, если изображение больше, чем PictureBox, программа устанавливает свойство PictureBox элемента управления SizeMode в Zoom, поэтому оно отображает его как насколько это возможно, без искажения. Если изображение меньше, чем PictureBox, программа устанавливает SizeMode в CenterImage, чтобы отобразить изображение в полном масштабе, центрированном в элементе управления.

Код устанавливает обработчик события PictureBox_DoubleClick (показано в скором времени), чтобы поймать событие DoubleClick элемента управления и добавляет всплывающую подсказку, описывающую изображение. Наконец, код устанавливает свойство PictureBox элемента управления Parent в FlowLayoutPanel, поэтому PictureBox отображается внутри FlowLayoutPanel .

В следующем коде показан обработчик событий PictureBox_DoubleClick, который выполняется при двойном щелчке PictureBox.

...

Источник: http://csharphelper.com/blog/2016/12/display-thumbnails-for-image-files-in-a-directory-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *