沒有更多的具體信息,包括您正在使用(還有的ColorPicker
型細節沒有這種內置的WPF&hellip類,想必您使用的是許多第三世界的一個那裏有黨派的選擇),不可能知道你的問題是什麼。
但基於該錯誤消息,看來該SelectedColor
屬性被聲明爲Nullable<Color>
(即Color?
),當然只是作爲錯誤說,儘管有來自Nullable<Color>
到Color
的隱式轉換,你可以明確地轉換有投:
System.Windows.Media.Color c = (System.Windows.Media.Color)_clpicker.SelectedColor;
或者,你可以使用Value
屬性:
System.Windows.Media.Color c = _clpicker.SelectedColor.Value;
同樣,機智更具體地說,目前還不清楚爲什麼SelectedColor
屬性是可爲空的類型。儘管如此,在您嘗試此作業的時間點上,實際值可能是null
。在這種情況下,編譯器錯誤告訴你一件非常重要的事情:你沒有做任何事情來處理null
的情況。
如果SelectedColor
屬性的值爲null
,上述兩個選項都會引發異常。
有許多的方式來處理null
價值,但最簡單的就是讓Nullable<T>
類型爲你做:
System.Windows.Media.Color c = _clpicker.SelectedColor.GetValueOrDefault();
這時如果SelectedColor
酒店的null
值時,c
變量將被分配爲System.Windows.Media.Color
的默認值(即黑色)。如果您願意,您可以將另一個默認值傳遞給GetValueOrDefault()
方法,如果原始值爲null
,它將返回該值。
可能是[WPF ColorPicker從wpf/xaml/toolkit綁定到屬性錯誤](http://stackoverflow.com/questions/14495581/wpf-colorpicker-from-wpf-xaml-toolkit-binding-to-property-錯誤)會有幫助 –
查看'System.Windows.Media.Color?'中的問號。看起來你在這裏處理[Nullable type](https://msdn.microsoft.com/en-us/library/b3h38hb0(v = vs.110).aspx)。 – vesan