3 votes

XAML ImageBrush utilisant une image BitmapImage sans URI

J'ai le XAML suivant qui affiche l'image de couverture d'un livre en utilisant un URI :

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

Cependant, l'image que j'aimerais utiliser n'est pas sur le disque ou accessible via un URI ; elle provient d'un fichier binaire que j'analyse dans un fichier de données. BitmapImage objet.

Lorsque je crée un BitmapImage via le code, l'objet résultant BaseUri y UriSource sont nulles. Comment puis-je obtenir les ImageBrush pour utiliser un BitmapImage qui réside en mémoire au lieu de le lire à partir d'un URI ?

4voto

Thomas Levesque Points 141081

La propriété ImageSource est de type ImageSource, et non Uri ou string... en fait, une conversion se produit lorsque vous lui attribuez un Uri. Vous pouvez lier l'ImageBrush directement à une propriété qui renvoie une ImageSource

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X