Компонент Blanket Alpha в GDI +

Есть ли способ установить значение Alpha, которое влияет на все последующие вызовы GDI / GDI +? другими словами, я хочу установить прозрачность для всех вызовов объекта Graphics.

(Я ищу что-то похожее на то, как *Transform функции влияют на Graphics объект, для которого они вызываются)


person Agnel Kurian    schedule 11.05.2009    source источник
comment
Ответ отредактирован ... Я бы посоветовал взять поплавок, который обеспечивает ваше значение прозрачности.   -  person Adam Robinson    schedule 11.05.2009


Ответы (1)


Если я не о чем-то не осведомлен, в GDI нет средств для этого. Вы ищете способ изменить относительные альфа-значения всех цветов, используемых при рисовании в контексте GDI? Думаю, что ничего подобного не существует.

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

Изменить

После прочтения вашего комментария я бы посоветовал превратить ваш код рисования в функцию, которая принимает объект Graphics, местоположение / размер (и все, что подходит, если это еще не так) и плавающий элемент прозрачности (в диапазоне от 0 - 1.0). Затем вы можете создать свои цвета в своей функции на основе предоставленного значения прозрачности.

person Adam Robinson    schedule 11.05.2009
comment
У меня есть код, который рисует некоторые формы при получении объекта Graphics. Я хотел бы повторно использовать тот же код для рисования полупрозрачного оверлея во время перетаскивания. Я надеялся сделать что-то вроде g- ›Transparency = 0.5f ... :) - person Agnel Kurian; 11.05.2009