Значки списка отображаются нечетко (C#)

Я пытаюсь отобразить представление «LargeIcon» в элементе управления listview, однако указанные мной изображения размыты. Вот что у меня есть на данный момент: альтернативный текст http://img220.imageshack.us/img220/1005/blurryiconsql3.jpg

Файлы .png имеют размер 48x48, и это то, что я установил для отображения в свойствах ImageList. Я заметил одну вещь (которая, вероятно, является причиной), но не знаю, как это изменить. Внутри «редактора коллекции изображений», где вы выбираете, какие изображения вы хотите использовать для элемента управления ImageList, похоже, что он устанавливает неправильный размер для каждого изображения. альтернативный текст http://img83.imageshack.us/img83/5218/imagepropertiesmf9.jpg

Как вы можете видеть, "PhysicalDimension" и "Size" установлены на 16x16 и не могут быть изменены. У кого-нибудь есть какие-либо идеи? Большое спасибо!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
6 790
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Не забудьте также установить ImageList.ImageSize на 48 x 48.

У меня они оба установлены в средстве конструктора, а затем вручную установлены в коде: this.m_LargeImageList.ImageSize = new System.Drawing.Size (48, 48); И все равно никакой разницы :(

Game_Overture 21.09.2008 22:11

Повторно добавьте изображения после настройки этого поля. Если я помню, изображения сохраняются в resx.

Nick 21.09.2008 22:18

Я не уверен, что это проблема в данном конкретном случае, но поддержка формата PNG со стороны Microsoft в целом оставляет желать лучшего. Попробуйте добавить изображения в формате .bmp, и они должны отображаться нормально.

Формат растрового изображения не поддерживает прозрачность

CodeCatia 20.01.2021 17:20
Ответ принят как подходящий

При добавлении размера значка в формате .PNG редактор стремится выбрать размер первой записи в этом файле, поэтому он выбирает запись 16x16 и растягивает ее. Вот почему вы видите там 16x16. Как и предполагалось, поддержка PNG оставляет желать лучшего, я часто перехожу на другой формат, чтобы избежать этого.

Вы можете открыть файл в Paint.Net, если вам нужен бесплатный редактор или что-то более полнофункциональное, например Photoshop или Fireworks, и извлечь нужный размер.

PNG не поддерживает (насколько я знаю и мог найти в Интернете) более одного размера изображения для каждого файла. Итак, этот ответ неверен (пожалуйста, не стесняйтесь доказать, что я ошибаюсь, и я удалю свой -1 голос)

Isak Savo 21.10.2008 16:34

Я думаю, вы думаете об ICO ... :-(

MiffTheFox 19.05.2009 18:05

Чтобы уточнить, значки, используемые в Vista и Up, представляют собой PNG, сжатые в контейнере ICO, редактор выбирает неправильное изображение, хранящееся внутри ICO, которое является сжатым изображением PNG (выбрано, потому что оно поддерживает сжатие без потерь и альфа-канал). Итак, да, вы добавляете ICO-файл, но вы смотрите на него в формате PNG. И из-за сжатия не все распознает правильно ... поскольку в этом случае используется неправильный (по умолчанию: минимальный-> 16x16) размер, что приводит к растянутому / размытому изображению.

Nick Craver 20.05.2009 19:15

Обязательно установите размер ImageList на 48x48 пикселей. ПЕРЕД вы добавляете изображения.

Если ImageList установлен на 32x32 и вы добавляете изображение 48x48, размер значка изменяется до 32x32. Когда вы впоследствии измените ImageList на 48x48, размер изображения снова изменится, что приведет к потере качества и размытию.

Кроме того, Paint.NET (или Photoshop) не может открывать файлы .ico.

Visual Studio / .NET может нормально обрабатывать 32-битные изображения PNG, хотя встроенный редактор изображений в VS немного тусклый.

Это неверно. Paint.NET безупречно работает с .ico (открыть и сохранить), используя простой плагин: форумы.getpaint.net/index.php?/topic/…

kzu 18.08.2011 08:35

Также проверьте настройку ColorDepth в вашем ImageList. У меня была аналогичная проблема с элементом управления TreeView, но после прочтения предыдущего сообщения о размере я нашел этот параметр, немного поигрался с ним и обнаружил, что он сильно влияет на способ рендеринга изображений из ImageList. Чем выше глубина, тем лучше качество.

Другие вопросы по теме