将 System.Windows.Media.Color 绑定到 TextBlock.Foreground?
当我这样做时,我得到:
“无法创建默认转换器 在之间执行“单向”转换 类型“System.Windows.Media.Color”和 '系统.Windows.Media.Brush'。考虑 使用 Binding 的 Converter 属性。”
任何人都知道如何做到这一点?
为什么 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>
When I do this I get:
"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."
Anyone knows how to do this?
Why can't WPF convert this automatically as I am using WPF colors, not System.Drawing.Color.
EDIT:
Xaml code:
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Brush类型的默认TypeConverter不支持Color(即使是WPF版本)。它仅支持与字符串之间的转换。
您必须创建一个自定义 IValueConverter,它接受 Color 并返回 SolidColorBrush。
The default TypeConverter for the Brush type, does not support Color (even the WPF version). It only supports converting to/from strings.
You would have to create a custom IValueConverter that takes a Color and returns a SolidColorBrush.