在 .NET 中,Color 对象是不能为 null 的,这跟 DateTime 一样。
要让 Color 为 null ,得使用 Color?。
注意:虽然 Color 不可能为 null,但是如果我们将 Color == null 比较,编译器并不会警告。
但是,在使用时,我们是不能直接将 Color? 对象赋给 Color 的,怎样转换呢?
Convert.ToColor()?,哈哈,这是不存在的,这样做:
Color.FromArgb(BackgroundColor?.ToArgb() ?? 0)
由于可为 null,故不能直接 .ToArgb(),要加问号,以获得非 null 时的 Argb 值。
而 ?? 后面就是为 null 时的 Argb 默认值。