2009-11-19 5 views

答えて

32
string hexValue = "#000000"; // You do need the hash 
Color colour = System.Drawing.ColorTranslator.FromHtml(hexValue); // Yippee 

は編集:あなたが実際にハッシュを必要とする、あるいはんアルファ値は考慮されません。うわー!

+1

「イッピー(Yippee)」の回答とボーナスポイント –

+0

if(color == Black)の比較は、2つの異なるオブジェクトであるため、条件を真にすることはできませんでした。あなたのためだけに - あなたのためにコメントを保持します! – GenericTypeTea

+0

はい。ハッシュが必要です。さもなければ、それはエラー – Shyju

3

var my col = Color.FromArgb(int x);

はあなたにもアルファ値を指定する必要があります注意してください(おそらくあなたはすなわち、このためにFF、完全に不透明にしたいので、色の六角値に0xFF000000を追加)

+0

+1を投げます。彼はInt32.Parseを使って16進文字列をintに変えることができます。 –

0
Color.FromArgb(Convert.ToInt32(str.Substring(1), 16)); 
+0

これは透明である0のaplha値を与えませんか? –

+0

アルファがサポートされている場合はあります。不透明な色が必要な場合は#FF123456を使用するか、変換結果に0xff000000を追加する必要があります。 – EricSchaefer

1

は、あなたが開始するように値を変更することができますFF?例えば。 FFFFFFFF =白。アルファ値を先頭に追加します。

の場合は、値をSystem.Drawing.Color.FromArgbと解析するだけです。 intがあり、最初の8ビットはアルファ値です。 255は不透明です。

文字列をintに変換するには、Int32.Parseを使用します。例えば。

String HexColourValue = "FABFAB"; 
System.Drawing.Color colour = System.Drawing.Color.FromArgb(Int32.Parse("FF"+HexColourValue, 
           System.Globalization.NumberStyles.HexNumber)); 

HexColourValueに「#」が含まれていないことを確認してください。

関連する問題