2009-05-11 9 views
0

Existe-t-il un moyen de définir une valeur Alpha qui affecte tous les appels GDI/GDI + suivants? En d'autres termes, je cherche à définir la transparence pour tous les appels sur un objet Graphics.Composant Alpha Blanket dans GDI +

(je suis à la recherche de quelque chose de similaire à la façon dont les *Transform fonctions affectent l'objet Graphics ils sont appelés)

+0

Réponse modifiée ... Je vous suggère de prendre un flotteur qui fournit votre valeur de transparence. –

Répondre

1

moins qu'il y ait quelque chose que je ne suis pas au courant, il n'y a pas d'installation dans GDI pour y parvenir. Cherchez-vous un moyen de changer les valeurs alpha relatives de toutes les couleurs utilisées dans le dessin dans un contexte GDI? Je ne pense pas que quelque chose comme ça existe. Une meilleure idée pourrait être de mettre en cache vos couleurs dans votre propre dépôt personnalisé, puis lorsque vous souhaitez définir une valeur alpha globale (ou étendue à l'échelle), vous pouvez l'utiliser pour manipuler ces couleurs. Évidemment, si j'avais plus d'informations, je pourrais probablement trouver une solution qui soit plus appropriée à votre environnement, mais c'est tout ce que je peux offrir en fonction de ce qui est fourni dans la question.

Modifier

Après avoir lu votre commentaire, ma suggestion serait de transformer votre code de peinture dans une fonction qui prend un objet Graphics, un lieu/taille (et tout le reste est approprié, si ce n'est pas déjà de cette façon) et un flottant de transparence (allant de 0 à 1,0). Vous pouvez ensuite créer vos couleurs dans votre fonction en fonction de la valeur de transparence fournie.

+0

J'ai un code qui dessine certaines formes après avoir reçu un objet Graphics. Je voudrais réutiliser le même code pour peindre une superposition semi-transparente lors d'un glisser-déposer. J'espérais faire quelque chose comme g-> Transparence = 0.5f ... :) –