在XAML中将十六进制值绑定到颜色

时间:2013-03-18 06:09:07

标签: c# winrt-xaml

我将对象存储在我在GridView中显示的数据库中。我正在绑定数据库中的每个属性。 color属性存储为Hex值。

我正在尝试使用转换器函数绑定此十六进制值,如下所示,现在每次都返回Red。

它似乎正在工作,但最终会返回以下错误: 程序'[5548] TranslatorService.Example.exe:Managed(v4.0.30319)'已退出,代码为-1073741189(0xc000027b)。

谁能告诉我我做错了什么?

代码隐藏:

public class StringToColorConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, String language)
    {
        return Colors.Red;
    }

    public object ConvertBack(object value, Type targetType, object parameter, String language)
    {
        throw new NotImplementedException();
    }
}

XAML:

 <Grid.Background>
                        <SolidColorBrush Color="{Binding Path=ColorHex, Converter={StaticResource ColorConverter}}" />
                    </Grid.Background>

谢谢

3 个答案:

答案 0 :(得分:3)

根据我的经验,您需要指定画笔,而不是颜色:

SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 255, 0, 0);

mySolidColorBrush.Color = Color.Red;

答案 1 :(得分:0)

重新编译后似乎解决了这个问题。

答案 2 :(得分:0)

在您发布的转换器代码中,您将返回Color.Red,因此无论value是什么,您每次都会获得红色。