Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将ColorPicker.selectedColor转换为system.windows.media.color?_C#_Wpf - Fatal编程技术网

C# 如何将ColorPicker.selectedColor转换为system.windows.media.color?

C# 如何将ColorPicker.selectedColor转换为system.windows.media.color?,c#,wpf,C#,Wpf,错误: 无法将类型“System.Windows.Media.Color?”隐式转换为 “System.Windows.Media.Color”。是否存在显式转换 缺演员 如果没有更具体的信息,包括您正在使用的ColorPicker类型的详细信息,WPF中就没有这样的内置类……可能您正在使用的是许多第三方选项中的一个,因此无法确定您的问题是什么 但根据错误消息,SelectedColor属性似乎被声明为可为Null,即Color?,当然,正如错误所述,虽然没有从Nullable到Color的隐式

错误:

无法将类型“System.Windows.Media.Color?”隐式转换为 “System.Windows.Media.Color”。是否存在显式转换 缺演员


如果没有更具体的信息,包括您正在使用的ColorPicker类型的详细信息,WPF中就没有这样的内置类……可能您正在使用的是许多第三方选项中的一个,因此无法确定您的问题是什么

但根据错误消息,SelectedColor属性似乎被声明为可为Null,即Color?,当然,正如错误所述,虽然没有从Nullable到Color的隐式转换,但您可以通过强制转换显式转换:

ColorPicker _clpicker;
System.Windows.Media.Color c = _clpicker.SelectedColor;
或者,您可以使用Value属性:

System.Windows.Media.Color c = (System.Windows.Media.Color)_clpicker.SelectedColor;
同样,没有更多细节,我们不清楚SelectedColor属性为什么是可空类型。虽然在您尝试此赋值时,该值实际上可能为null,但这是可能的。在这种情况下,编译器错误告诉您一件非常重要的事情:您没有做任何事情来处理null情况

如果SelectedColor属性的值为null,上述两个选项都将引发异常

有许多方法可以处理null值,但最简单的方法是让可为null的类型为您处理:

System.Windows.Media.Color c = _clpicker.SelectedColor.Value;

然后,如果SelectedColor属性的值为null,则c变量将被分配System.Windows.Media.Color的默认值,即黑色。如果愿意,您可以将另一个默认值传递给GetValuerDefault方法,如果原始值为null,它将返回该值。

可能会有帮助。请在System.Windows.Media.Color?中查看问号?。看起来您正在处理一个问题。如果您发现答案有用,则堆栈溢出的约定是单击答案旁边的upvote按钮。如果答案确实解决了您的问题,那么堆栈溢出的约定是单击答案旁边的复选标记按钮。有关如何使用堆栈溢出的更多详细帮助,请参阅:@anthien您的“非常感谢”评论表明,用户@PeterDuniho确实解决了您的问题。您可能希望将他/她的回答标记为一个答案,因为这也有助于其他读者;“否则,读者会认为这个问题还没有解决。”彼得杜尼奥很好地解释了对一个相当模糊的问题的回答。您的回答帮助我感谢您在使用扩展WPF工具包时解决了类似的错误。OP的问题似乎也与该工具包有关。
System.Windows.Media.Color c = _clpicker.SelectedColor.GetValueOrDefault();