2013-07-19 17 views
10

Sto utilizzando ReportViewer SSRS per generare un report utilizzando oggetti. Nel mio programma, chiedo all'utente di immettere una stringa di colori comunemente noti come "Red", "Blue", ecc. Vorrei quindi generare tre tonalità di questo colore e utilizzare questo colore per riempire un grafico ad area nel mio rapporto. io quindi il mio cambiando l'opacità (alfa) del colorecome modificare la trasparenza di un colore in C#

Questo è il mio codice che converte la stringa di colore:.

newitem.ChartColor = "red"; 
Color mycolor = Color.FromName(newitem.ChartColor); 

Tuttavia, ora vorrei generare più di due colori con stessa tonalità come rosso ma diverso alfa (opacità) in modo che appaiano più chiari, qualcosa come #56FF0000

Ho provato a passare un valore alla proprietà A di Colore, tuttavia è di sola lettura.

Qualsiasi aiuto apprezzato.

risposta

3

È possibile impostare questa funzione

static Color SetTransparency(int A, Color color) 
    { 
     return Color.FromArgb(A, color.R, color.G, color.B); 
    } 
+0

Non penso che "SetTransparency" sia un nome chiaro. Non altera la proprietà di un colore esistente, ma crea e ne restituisce uno nuovo. – DaveInCaz

1

Credo che ciò deve essere incluso tra queste risposte è che il valore alfa indica il grado di trasparenza il colore è 0 rappresenta la più trasparente e con 255 è il più opaco. Ecco un riassunto:

     A L P H A V A L U E 
0 [<--- most transparent] ... ... ... [most opaque --->] 255