我需要绑定(bind)颜色来填充矩形。
XAML:
<Rectangle Fill="{Binding Colorr}"
VerticalAlignment="Center"
Height="3" Width="16"
Margin="3, 1, 5, 0"
Visibility="Visible"/>
View 模型:
public ItemViewModel()
{
Colorr = Colors.Red;;
}
public Color Colorr
{
get {
return color; }
set
{
color = value;
NotifyOfPropertyChange(() => Colorr);
}
}
生成的矩形是不可见的(或者是透明的 - 很难说......)而不是可见的和红色的。我怎样才能摆脱这个问题?
最佳答案
另一种方法是使用 ColorToBrushConverter
,如下所示:
using System.Windows.Data;
using System.Windows.Media;
public class ColorToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return new SolidColorBrush((Color)value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return (value as SolidColorBrush).Color;
}
}
然后在 XAML 中将转换器定义为资源并像这样使用它:
<Rectangle Fill="{Binding Colorr, Converter={StaticResource ColorToBrushConverter}}"/>
关于C# WPF 矩形填充绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41103795/