C# 如何将笔刷转换为颜色(UWP)?

C# 如何将笔刷转换为颜色(UWP)?,c#,xaml,uwp,C#,Xaml,Uwp,我已经将“Windows.UI.Xaml.Media.Brush”转换为“Windows.UI.Color”。但是VS返回错误。请告诉我如何正确地进行此转换?您无法将画笔转换为颜色。画笔的概念不能简化为一种颜色,因为它可以是颜色的渐变或图像等 这种转换只在特殊情况下才有意义。我猜这就是你想要的。以下是如何在代码中执行此操作: Windows.UI.Color colorFromBrush; if (brush is SolidColorBrush) colorFromBrush = (b

我已经将“Windows.UI.Xaml.Media.Brush”转换为“Windows.UI.Color”。但是VS返回错误。请告诉我如何正确地进行此转换?

您无法将画笔转换为颜色。画笔的概念不能简化为一种颜色,因为它可以是颜色的渐变或图像等

这种转换只在特殊情况下才有意义。我猜这就是你想要的。以下是如何在代码中执行此操作:

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开发者平台

您可以将画笔转换为颜色,但您必须明确地编写它。 要做到这一点,请执行以下操作:

StackPanel pane = new StackPanel()
{
Background = Background = new SolidColorBrush(new Windows.UI.Color() { A = 255, R = 25, B = 0, G = 0})
}

这适用于每个单个UIElement,只要您正确分配背景属性。

为您的问题和错误消息添加一些代码。精彩的解释