[英]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.