Chcę utworzyć System.Drawing.Color
z wartości takiej jak #FF00FF
lub FF00FF
bez konieczności pisania kodu. Czy jest do tego wbudowany parser .NET?
Chcę utworzyć System.Drawing.Color
z wartości takiej jak #FF00FF
lub FF00FF
bez konieczności pisania kodu. Czy jest do tego wbudowany parser .NET?
Odpowiedzi:
ColorTranslator.FromHtml("#FF00FF");
Jest to raczej łatwe, gdy używasz Convert-Class . ToInt32
Funkcja ma przeciążenia drugiego parametru, który stanowi podstawę łańcuch jest przypisany.
using System.Drawing
Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
Użyj klasy ColorConverter :
var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );
Może to również konwertować ze standardowych nazwanych kolorów, np. ConvertFromString („Blue”)
Zobacz tutaj omówienie standardowych mechanizmów konwersji typu .NET.
Jeśli kolor, którego chcesz użyć, jest stałą, w C # użyj System.Drawing.Color.FromArgb (0xFF00FF)
. Jest to nieco szybsze niż System.Drawing.Color.FromName
lub System.Drawing.Color.FromHtml
, ponieważ przetwarzanie z ciągu znaków na liczbę całkowitą odbywa się w czasie kompilacji, a nie w czasie wykonywania.