Без получения более подробной информации, включая информацию о 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;
Опять же, остроумие hout больше особенностей, непонятно, почему свойство 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