webForumDet fria alternativet

Generera färg nyanser beroende på färg som skickas in?

.NET

2 svar · 335 visningar · startad av CokeLight

Medlem sedan juni 2000504 inlägg
Frågan#1

Hejsan,

Jag har ett Graphics object, g. Den har FillRectangle och FillPath metoder som tar emot Brush som en utav parametrarna. Om jag vill att rektangeln ska vara röd skriver jag t.ex. g.FillRectangle(Brushes.Red, ..., ...);

Jag undrar om man automatiskt kan hitta dess mörk-/ljusröda motsvarighet?
(Mörkröd skulle kunna vara Brushes.Firebrick t.ex.)

(Det jag gör är att rita stapeldiagram egentligen, och skulle vilja att man kan skicka in röd, grön, blå osv som inparameter till klassen, utan att veta vad mörk-/ljusröd ska vara/heta, och att programmet själv istället beräknar detta. Går det?

Alternativet är ju annars att man måste skicka in dessa parametrar, eller så hårdkodar jag ett antal färger.

Om färgen hade varit RGB istället för Brush.SomeColor eller nåt kanske man hade kunnat multiplicera med nån viss procent för att få fram nyanser av den aktuella färgen.. fast det verkar ju inte gå nu.. eller? Nån som har nåt förslag på hur man kan lösa detta..? :)

Medlem sedan juli 20011 084 inlägg
#2

Det finns väl några olika metoder :)

Du kan ju skapa en egen brush först, då kan du använda dig av RGB-färgerna.

t.ex.

objBrush = new SolidBrush(Color.Blue);
objBrush2 = new SolidBrush(Color.FromArgb(255,0,0,100);

g.FillRectangle(objBrush2, ..., ...);
Medlem sedan juni 2000504 inlägg
#3

aha.. tackar.. =) a så måste det ju vara.. har inte testat men ser ju vettigt ut.. (har ett annat fel på sidan för tillfället )

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)