“Cannot create default converter to
perform ‘one-way’ conversions between
types ‘System.Windows.Media.color’ and
‘System.windows.Media.Brush’. ConsIDer
using Converter property of Binding.”
谁知道怎么做?
为什么WPF不能自动转换,因为我使用的是WPF颜色,而不是System.Drawing.color.
编辑:
Xaml代码:
<GrIDVIEwColumn WIDth="120" header="Info"> <GrIDVIEwColumn.CellTemplate> <DataTemplate> <TextBlock HorizontalAlignment="Center" Text="{Binding Info,Mode=OneWay}" Foreground="{Binding Messagecolor,Mode=OneWay}"/> </DataTemplate> </GrIDVIEwColumn.CellTemplate></GrIDVIEwColumn>解决方法 Brush类型的默认TypeConverter不支持color(甚至是WPF版本).它只支持转换为/从字符串转换.
您必须创建一个自定义IValueConverter,它接受一个color并返回一个SolIDcolorBrush.
public class colorToBrushConverter : IValueConverter { public object Convert(object value,Type targettype,object parameter,System.Globalization.CultureInfo culture) { if (!(value is color)) throw new InvalIDOperationException("Value must be a color"); return new SolIDcolorBrush((color)value); } public object ConvertBack(object value,System.Globalization.CultureInfo culture) { throw new NotImplementedException(); }}总结
以上是内存溢出为你收集整理的c# – 绑定System.Windows.Media.Color到TextBlock.Foreground?全部内容,希望文章能够帮你解决c# – 绑定System.Windows.Media.Color到TextBlock.Foreground?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)