ฉันต้องการสร้างค่าSystem.Drawing.Color
จากค่าเช่น#FF00FF
หรือFF00FF
ไม่จำเป็นต้องเขียนโค้ดสำหรับสิ่งนั้น NET มีโปรแกรมแยกวิเคราะห์ในตัวสำหรับสิ่งนั้นหรือไม่
ฉันต้องการสร้างค่าSystem.Drawing.Color
จากค่าเช่น#FF00FF
หรือFF00FF
ไม่จำเป็นต้องเขียนโค้ดสำหรับสิ่งนั้น NET มีโปรแกรมแยกวิเคราะห์ในตัวสำหรับสิ่งนั้นหรือไม่
คำตอบ:
ColorTranslator.FromHtml("#FF00FF");
คุณสามารถใช้ System.Drawing.ColorTranslator static method FromHtml
ใช้:
System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
มันค่อนข้างง่ายเมื่อคุณใช้ตัวแปลง-Class ToInt32
ฟังก์ชั่นที่มีเกินมีพารามิเตอร์ที่สองซึ่งหมายถึงฐานสตริงที่อยู่ใน
using System.Drawing
Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
ใช้คลาสColorConverter :
var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );
นอกจากนี้ยังสามารถแปลงจากสีที่มีชื่อมาตรฐานเช่น ConvertFromString ("Blue")
ดูที่นี่สำหรับการอภิปรายเกี่ยวกับกลไกการแปลงประเภท. NET มาตรฐาน
System.Drawing.Color.FromArgb (0xFF00FF)
หากสีที่คุณต้องการที่จะใช้เป็นค่าคงที่ในการใช้ C # ซึ่งเร็วกว่าSystem.Drawing.Color.FromName
หรือเล็กน้อยSystem.Drawing.Color.FromHtml
เนื่องจากการแยกวิเคราะห์จากสตริงเป็นจำนวนเต็มทำได้ในเวลาคอมไพล์แทนที่จะเป็นรันไทม์
วิธี FromName ใช้ได้ผลสำหรับฉัน
System.Drawing.Color.FromName("#FF00FF");