繁体   English   中英

WPF中的绑定渐变颜色

[英]Binding Gradient color in wpf

我必须绑定渐变颜色属性。 在此,我正在使用转换器。 这是绑定的xaml代码

<GradientStop Color="{Binding Namevalue, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource nametocolorconverter}}"/>

nametocolorconverter的代码

class nametocolorconverter: IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
       Brush brw = new Brush();
        if(value == "Blue") brw = Colors.Blue;
        elseif(value=="Green") brw = Colors.Green;
        else brw=Colors.Red;
   return brw;

    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return null;
    }

上面的代码不起作用。 我没有得到想要的颜色。

您的代码甚至无法编译。

在Convert方法中,声明一个Brush类型的局部变量brw并尝试创建一个新的Brush实例。 除此之外,由于Brush是一个抽象类,因此无法正常工作,您应该改用Color类型的变量:

Color color;
if (value == "Blue")
{
    color = Colors.Blue;
}
else if (value == "Green")
{
    color = Colors.Green;
}
else
{
    color = Colors.Red;
}

您也可以使用switch语句代替if-else链:

switch ((string)value)
{
    case "Blue":
        color = Colors.Blue;
        break;
    case "Green":
        color = Colors.Green;
        break;
    default:
        color = Colors.Red;
        break;
}

如果仅使用标准颜色名称,甚至更简单:

return (Color)ColorConverter.ConvertFromString((string)value);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM