Jar*_*lak 1 c# wpf xaml mvvm caliburn.micro
我需要绑定颜色来填充矩形.
XAML:
<Rectangle Fill="{Binding Colorr}"
VerticalAlignment="Center"
Height="3" Width="16"
Margin="3, 1, 5, 0"
Visibility="Visible"/>
Run Code Online (Sandbox Code Playgroud)
视图模型:
public ItemViewModel()
{
Colorr = Colors.Red;;
}
public Color Colorr
{
get {
return color; }
set
{
color = value;
NotifyOfPropertyChange(() => Colorr);
}
}
Run Code Online (Sandbox Code Playgroud)
生成的矩形不可见(或透明 - 很难说......),而不是可见和红色.我该怎样摆脱这个问题?
另一种方法是使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在XAML中将转换器定义为资源并使用它如下:
<Rectangle Fill="{Binding Colorr, Converter={StaticResource ColorToBrushConverter}}"/>
Run Code Online (Sandbox Code Playgroud)
Rectangle.Fill(它继承自的Shape)是一个Brush,而不是一个Color.所以Brush改为使你的财产:
private Brush _colorr = Brushes.Red;
public Brush Colorr
{
get
{
return _colorr;
}
set
{
_colorr = value;
NotifyOfPropertyChange(() => Colorr);
}
}
Run Code Online (Sandbox Code Playgroud)
可能还有其他问题,但您需要先解决这个问题.
| 归档时间: |
|
| 查看次数: |
6496 次 |
| 最近记录: |