Ik wil een System.Drawing.Color
maken van een waarde als #FF00FF
of FF00FF
zonder dat ik daarvoor code hoef te schrijven. Is daar een ingebouwde .NET-parser voor?
Antwoord 1, autoriteit 100%
ColorTranslator.FromHtml("#FF00FF");
Antwoord 2, autoriteit 38%
U kunt de statische methode van System.Drawing.ColorTranslator FromHtml gebruiken.
gebruik:
System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
Antwoord 3, autoriteit 11%
Het is vrij eenvoudig wanneer u de Convert-Class. De functie ToInt32
heeft een overbelasting met een tweede parameter die de basis vertegenwoordigt waarin de string zich bevindt.
using System.Drawing
Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
Antwoord 4, autoriteit 5%
Gebruik de klasse ColorConverter:
var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );
Dit kan ook worden omgezet van de standaard benoemde kleuren, b.v. ConvertFromString( “Blauw” )
Zie hiervoor een bespreking van de standaard .NET-typeconversie mechanismen.
Antwoord 5
Als de kleur die je wilt gebruiken een constante is, gebruik dan in C# System.Drawing.Color.FromArgb (0xFF00FF)
. Dat is iets sneller dan System.Drawing.Color.FromName
of System.Drawing.Color.FromHtml
, aangezien het ontleden van een string naar een geheel getal tijdens het compileren wordt gedaan in plaats van tijdens runtime.
Antwoord 6
De FromName-methode werkte voor mij
System.Drawing.Color.FromName("#FF00FF");