Build превращает частично прозрачное изображение в пиксели черного цвета - PullRequest
4 голосов
/ 17 июня 2010

Я очень плохо знаком с C # и столкнулся с проблемой, но не смог ее решить. У меня есть ряд кнопок, которым назначены изображения .png. Изображения в формате .png обеспечивают прозрачность, а сглаживание краев в GIMP оставляет некоторые полупрозрачные пиксели. Я установил свойства панели инструментов списка изображений (imglToolbar), чтобы распознавать «Прозрачный» в качестве назначенного цвета и отображать его как прозрачный. Я работаю в Visual Studio 2005.

Странно то, что все выглядит великолепно, когда я просматриваю окно предварительного просмотра формы Visual C #. Иконки выглядят точно так, как должны. Однако, когда я на самом деле создаю проект, кнопки обрабатывают каждый полупрозрачный пиксель около края изображения, как если бы он был черным. Кажется, что он не может справиться с тем, который одновременно прозрачен и имеет цвет.

Изображение с помощью редактора форм Visual C #:

альтернативный текст http://img5.imageshack.us/img5/2577/whatiwanted.jpg

Изображение того, как оно выглядит при сборке:

альтернативный текст http://img690.imageshack.us/img690/7241/whatigot.jpg

Есть идеи, почему это происходит?

Ответы [ 2 ]

2 голосов
/ 17 июня 2010

Я только что нашел ответ, по крайней мере, в моей конкретной ситуации.

Форма, с которой я имею дело, это контейнер MDI верхнего уровня.По какой-то причине наличие значков 32-битного цвета не позволяет правильно интерпретировать эти полупрозрачные пиксели.Установка его на 24-битную, по прихоти, полностью решила проблему.Не уверен, что это какая-то ситуация, возникшая в результате какого-то невидимого фактора, но изменение глубины цвета решило мою проблему.

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

1 голос
/ 17 июня 2010

Я тоже столкнулся с этой проблемой;изменение свойства IsMdiContainer формы на false решило его.

...