我正在尝试使用ValueConverter设置图像的背景,当我直接在它显示的XAML中设置背景图像但是在使用转换器时它不会显示。
用于创建按钮的我的XAML代码:
<Button x:Name="image" Grid.Column="2" VerticalAlignment="Center" Margin="0, 0, -1, 0" Width="100" Height="100" Click="image_CLick">
<Button.Background>
<ImageBrush ImageSource="{Binding Path=isSaved, Converter={StaticResource BoolImageConverter}}"/>
</Button.Background>
</Button>
isSaved属性是用于确定要显示的图像的布尔值。
这是我的ValueConverter代码,我尝试使用Uri作为返回类型,但也尝试过BitmapImage或String。但ImageSource(根据MSDN)是一个Uri。
public class BoolToImage : IValueConverter
{
public Uri TrueImage = new Uri("/Images/ThumbSelected@2x.png", UriKind.Relative);
public Uri FalseImage = new Uri("/Images/thumb.png", UriKind.Relative);
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (!(value is bool))
{
return this.FalseImage;
}
bool b = (bool)value;
if (b)
{
return this.TrueImage;
}
else
{
return this.FalseImage;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
如果我将返回类型更改为BitmapImage,则此ValueConverter适用于普通的Image元素。
有什么想法吗?
答案 0 :(得分:1)
您是否尝试过将路径更改为:
@"Images\ThumbSelected@2x.png"
和
@"Images\thumb.png"