【发布时间】:2017-03-25 19:20:26
【问题描述】:
我已将“Windows.UI.Xaml.Media.Brush”转换为“Windows.UI.Color”。但是VS返回错误。请告诉我如何正确进行此转换?
【问题讨论】:
-
在您的问题和错误消息中添加一些代码。
我已将“Windows.UI.Xaml.Media.Brush”转换为“Windows.UI.Color”。但是VS返回错误。请告诉我如何正确进行此转换?
【问题讨论】:
您无法将画笔转换为颜色。画笔的概念不能简化为颜色,因为它可以是颜色的渐变,也可以是图像等。
这种转换只对SolidColorBrush 的特殊情况有意义。我猜这就是你所追求的。以下是您在代码中的操作方式:
Windows.UI.Color colorFromBrush;
if (brush is SolidColorBrush)
colorFromBrush = (brush as SolidColorBrush).Color;
else
throw new Exception("Can't get color from a brush that is not a SolidColorBrush");
谢谢, Stefan Wick - Windows 开发者平台
【讨论】:
您可以将 Brush 转换为颜色,但您必须明确地编写它。 为此,只需这样做:
StackPanel pane = new StackPanel()
{
Background = Background = new SolidColorBrush(new Windows.UI.Color() { A = 255, R = 25, B = 0, G = 0})
}
这适用于EVERY单个UIElement,只要您正确分配Background属性。
【讨论】: