Jesper TMedlem sedan nov. 20017 144 inlägg Hur får man variabeln att rulla här?
Detta funkar uppenbarligen ej:
string fontColor = Request.QueryString["c"];
...
g.DrawString( text, new Font(fontFamily, fontSize, FontStyle.Regular, GraphicsUnit.Pixel), new SolidBrush(Color.[b][red]fontColor[/red][/b]), 3, 3);
PMedlem sedan jan. 20012 204 inlägg måste du inte sätta någon typ av:
c color = new(fontcolor)
och sen i new solidbrush(c.någonting)
GladhMedlem sedan maj 20012 812 inlägg Du kan inte göra Color.fontColor eftersom det inte finns en property som heter så.
Eftersom Color är en class i .NET Framework så skulle jag rekomender dig att titta på just Color klassen i hjälpen på MSDN antingen Online eller om du har VS.NET så tryck F1 när du har markerat Color.
Nu till ditt problem. Du vill kunna använda dig av Color klassen utifrån ett värde som du har i din sträng fontColor. Color klassen är lite speciell då den har massor med redan fördefinerade färger som man kan använda sig av. Så om du har färgen"#0000FF" och vill "konverterar" denna till Color.Blue hur gör man då.
Det finns 3 methoder som du kan använda dig av beroende på hur den strängen som du skickar in ser ut.
Color.FromArgb()
Color.FromKnownColor()
Color.FromName()
Och när det gäller vårt Blue fall så skulle det bli så här:
Color blue = Color.FromArgb(0,0,255);
Där du sedan använder blue i din kod:
g.DrawString( text, new Font(fontFamily, fontSize, FontStyle.Regular, GraphicsUnit.Pixel), new SolidBrush([b]blue[/b]), 3, 3);
Om du vill använda någon av de andra så rekomenderas hjälpen i MSDN.
Jesper TMedlem sedan nov. 20017 144 inlägg Tack, men om jag nu har en querystring:
Color fontColor = Color.FromArgb(Request.QueryString["c"]);
... new SolidBrush(fontColor)
....page.aspx?c=0,0,255
Funkar inte.
Color fontColor = Color.FromName(Request.QueryString["c"]);
... new SolidBrush(fontColor)
....page.aspx?c=blue
Funkar.
Men RGB skulle ju vara bra att få till också.
GladhMedlem sedan maj 20012 812 inlägg
Color fontColor = Color.FromArgb(Request.QueryString["c"]);
... new SolidBrush(fontColor)
....page.aspx?c=0,0,255
Och det beror på att du inte gör följande:
Color.FromArgb(0,0,255)
Utan följande
Color.FromArgb("0,0,255")
Och det är en vässentlig skillnad på att skicka in 1 sträng, eller 3 tal.
Jesper TMedlem sedan nov. 20017 144 inlägg Ok, men det hade ju varit attans smidigt att slippa två "extra" querystrings för ändamålet. Men men... är det så, så är det.
Tack!
Jesper TMedlem sedan nov. 20017 144 inlägg string instr = Request.QueryString["rgb"];
string[] tempinstr = new string[2];
tempinstr = instr.Split(new char[] {','});
int r = Convert.ToInt32(tempinstr[0]);
int g = Convert.ToInt32(tempinstr[1]);
int b = Convert.ToInt32(tempinstr[2]);
Color fontColor = Color.FromArgb(r,g,b);