webdevqa.jp.net

16進数のRGB文字列からSystem.Drawing.Colorを作成する方法は?

System.Drawing.Color#FF00FFなどの値からFF00FFを作成したいのですが、そのためのコードを書く必要はありません。そのための.NET組み込みパーサーはありますか?

81
Jader Dias
ColorTranslator.FromHtml("#FF00FF");
159
João Angelo

System.Drawing.ColorTranslator静的メソッドFromHtmlを使用できます。

つかいます:

System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
58
Pat

Convert-Class を使用すると、かなり簡単です。 ToInt32 関数には、文字列のベースを表す2番目のパラメーターを持つオーバーロードがあります。

using System.Drawing

Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
16
Bobby

ColorConverter クラスを使用します。

var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );

これは、標準の名前付きの色から変換することもできます。 ConvertFromString( "Blue")

標準の.NETタイプ変換メカニズムの説明については、 here を参照してください。

9
Phil Devaney

使用する色が定数の場合、C#ではSystem.Drawing.Color.FromArgb (0xFF00FF)を使用します。文字列から整数への解析は実行時ではなくコンパイル時に行われるため、これはSystem.Drawing.Color.FromNameSystem.Drawing.Color.FromHtmlよりわずかに高速です。

1
Michael Rodby

FromNameメソッドは私のために働いた

System.Drawing.Color.FromName("#FF00FF");
0
bicbmx