簡體   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