使用没有URI的BitmapImage的XAML ImageBrush

时间:2009-08-18 16:50:56

标签: c# .net xaml

我有以下XAML,它使用URI显示图书的封面图片:

<Rectangle.Fill>
    <ImageBrush ImageSource="{Binding CoverUrl}" />
</Rectangle.Fill>

但是,我想要使用的图像不在任何地方的磁盘上,也不能通过URI访问;它来自我解析为BitmapImage对象的二进制文件。

当我通过代码创建BitmapImage对象时,生成的对象的BaseUriUriSource属性为空。如何让ImageBrush使用驻留在内存中的BitmapImage而不是从URI中读取它?

1 个答案:

答案 0 :(得分:4)

ImageSource属性的类型为ImageSource,而不是Uri或string ...实际上,当您为其分配Uri时会发生转换。您可以将ImageBrush直接绑定到返回ImageSource

的属性
<Rectangle.Fill>
    <ImageBrush ImageSource="{Binding Cover}" />
</Rectangle.Fill>


private ImageSource _cover;
public ImageSource Cover
{
    get
    {
        if (_cover == null)
        {
            _cover = LoadImage();
        }
        return _cover;
    }
}