使用valueconverter时,图像不显示为按钮的背景

时间:2014-01-09 11:40:20

标签: c# silverlight xaml windows-phone-8 windows-phone

我正在尝试使用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元素。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您是否尝试过将路径更改为:

@"Images\ThumbSelected@2x.png"

@"Images\thumb.png"