レジストリキーから読み取られた色の設定をSystem.Drawing.Colorに変換しようとしています。私はこの記事に続いて、System.Drawing.Colorにレジストリから返されたオブジェクトをキャストしています:Convert OBJECT to System.Drawing.ColorSystem.Drawing.Colorにオブジェクトをキャストする
System.Drawing.Color color = (System.Drawing.Color)result;
ここで私はオブジェクトとして取得していますこれらのレジストリ値の例のカップルです:
Type Data
REG_SZ Color [Olive]
REG_SZ Color [A=255, R=255, G=128, B=128]
System.Drawing.Colorへの最初のレジストリキーのキャストはうまくいきますが、2番目のキーをキャストすると「指定されたキャストは無効です」というエラーが表示されます。これらのキーの両方をSystem.Drawing.Colorとしてキャストできる最適な方法は何ですか?
EDIT:私はレジストリへの書き込み時にこの問題を解決する最も簡単な方法があると思いますが、私はARGB(INT32)に色を変換し、私はそれを読んでそのように他のがなければ、私はちょうど(Color.FromArgb
を使用することができます私は完全に迷っています)。
(結果); ' –
または' FromArgb(Int32、Int32、Int32、Int32) 'です。 https://msdn.microsoft.com/en-us/library/at1k42eh(v=vs.110).aspx –
を参照してください。リンクされたQ + Aと同じではなく、反射を使用して実際にボックスカラーを返しました。しかし、ここでは単なる文字列です。 「Olive [オリーブ]」は確かにキャストできません。 ColorConverterを使用する必要があります。 –