ऐसा लगता है कि आपको अपना स्वयं का कनवर्टर बनाना है। यहाँ एक सरल उदाहरण शुरू करने के लिए:
public class ColorToSolidColorBrushValueConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
if (null == value) {
return null;
}
// For a more sophisticated converter, check also the targetType and react accordingly..
if (value is Color) {
Color color = (Color)value;
return new SolidColorBrush(color);
}
// You can support here more source types if you wish
// For the example I throw an exception
Type type = value.GetType();
throw new InvalidOperationException("Unsupported type ["+type.Name+"]");
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
// If necessary, here you can convert back. Check if which brush it is (if its one),
// get its Color-value and return it.
throw new NotImplementedException();
}
}
इसके इस्तेमाल के लिये संसाधन अनुभाग में यह घोषणा।
<local:ColorToSolidColorBrushValueConverter x:Key="ColorToSolidColorBrush_ValueConverter"/>
और यह एक स्थिर संसाधन के रूप में उपयोग बंधन में:
Fill="{Binding Path=xyz,Converter={StaticResource ColorToSolidColorBrush_ValueConverter}}"
मैं इसे परीक्षण नहीं किया। अगर यह काम नहीं कर रहा है तो एक टिप्पणी करें।
संभावित डुप्लिकेट: http://stackoverflow.com/questions/372693/convert-string-to-brushes-brush-name-in-c नहीं –
मैं करता हूँ लगता है कि यह एक डुप्लिकेट है।मैं कलर ऑब्जेक्ट से कन्वर्ट करना चाहता हूं, स्ट्रिंग वैल्यू जैसे "लाल"। और मैं इसे एक्सएएमएल कनवर्टर के रूप में कार्यान्वित करना चाहता हूं, बनाम सी # कोड में रूपांतरण कर रहा हूं। – dthrasher