我試圖將從註冊表項讀取的顏色設置轉換爲System.Drawing.Color。我鑄造是從註冊表中的System.Drawing.Color返回的對象,本文以下內容:Convert OBJECT to System.Drawing.ColorC#將對象投射到System.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可以正常工作,但是在投射第二個鍵時,出現「指定的轉換無效」錯誤。能夠將這兩個鍵都轉換爲System.Drawing.Color的最佳方式是什麼?
編輯:我認爲解決這個最簡單的方法是寫註冊表時,我轉換顏色到ARGB(INT32),這樣,當我看到它,我可以只使用Color.FromArgb
(除非有另一個解決方案我完全缺失)。
怎麼樣'System.Drawing.Color.FromName (結果);' –
或'FromArgb(Int32,Int32,Int32,Int32)'。請參閱https://msdn.microsoft.com/en-us/library/at1k42eh(v=vs.110).aspx –
它與鏈接的Q + A不同,它使用了反射,它實際上返回了一個盒裝的Color 。但這裏只是一個普通的字符串。 「橄欖[橄欖]」當然也不能投。您必須使用ColorConverter。 –