.NETを使用して16進数のカラーコードから色を取得する方法は?
16進数のカラーコード(例:#FFDFD991
)から色を取得するにはどうしたらよいですか?
ファイルを読み込んでいて、16進数のカラーコードを取得することができます。16進カラーコードに対応する System.Windows.Media.Color
インスタンスを作成する必要があります。これを行うためにフレームワークに組み込まれたメソッドはありますか?
565
15
これはARGBコードだと思います。.. 「System.Drawing.Color」または「System.Windows.Media.Color」を参照していますか? 後者は、例えばWPFで使用されます。 まだ誰も言及していないので、あなたがそれを探していた場合に備えて:
HTML形式のRGBコード(Hexコードと呼ばれ、#FFCC66のようなもの)のことだとすると、ColorTranslatorクラスを使用します。
ただし、ARGBのHexコードであれば、System.Windows.Media名前空間のColorConverterクラスが利用可能です。
ColorTranslatorを使用したくない場合は、簡単に実行できます。
カラーコードは、ARGB値の16進表記にすぎません。
編集。
単一の整数の代わりに4つの値を使用する必要がある場合は、これを使用できます(複数のコメントを組み合わせたもの)。
注1 :NumberStylesはSystem.Globalizationにあります。 注2 :独自のエラーチェックを提供してください(カラーコードは6または8文字の16進値である必要があります)。
このきちんとした小さな拡張方法もあります。
使用中:
以下の3つのバリアントはまったく同じ色になります。 最後の1つは、Visual& nbsp; Studio& nbsp; 2010 IDE(おそらくそれを行っているのはReSharperです)で適切な色で強調表示されるという利点があります。
HEXカラーコードをSystem.Drawing.Colorに変換する必要がありました。具体的には、WPFフォームの背景としてアリスブルーの色合いで、答えを見つけるのに予想よりも時間がかかることを発見しました。
-。
次のコードを使用できます。
Windowsストアアプリで行う場合は、@ Hans Kestingと@Jinkの回答が続きます。
この投稿は、16進カラーコードからシステムカラーに変換しようとする人にとってのゴートになっています。 したがって、6桁(RGB)と8桁(ARGB)の両方の16進値を扱う包括的なソリューションを追加すると思いました。
Microsoftによると、デフォルトでは、RGBからARGB値に変換する場合。
つまり、6桁(RGB)の16進カラーコードにFFを追加すると、8桁のARGB 16進カラーコードになります。 したがって、ARGBとRGBヘクスの両方を処理し、それらを適切なカラー構造に変換する単純なメソッドを作成できます。
これはハンス・ケスティングの答えに触発されました。
WPF:
もしあなたが
.GetHashCode()
のようなHashCodeを意味しているなら、残念ですが戻ることはできません。ハッシュ関数は双方向ではないので、戻ることはできません。もし、色の16進数値に基づいて色を取得する必要がある場合は、Oded'の提案に従ってください。
使用方法
最も基本的なのは単に:です。