Image
L’interface utilisateur de l’application multiplateforme .NET (.NET MAUI) Image affiche une image qui peut être chargée à partir d’un fichier local, d’un URI ou d’un flux. Les formats d’image de plateforme standard sont pris en charge, notamment les fichiers GIF animés et les fichiers SVG (Scalable Vector Graphics) locaux. Pour plus d’informations sur l’ajout d’images à un projet d’application .NET MAUI, consultez Ajouter des images à un projet d’application .NET MAUI.
Image définit les propriétés suivantes :
Aspect
, de typeAspect
, définit le mode de mise à l’échelle de l’image.IsAnimationPlaying
, de typebool
, détermine si un GIF animé est en cours de lecture ou arrêté. La valeur par défaut de cette propriété estfalse
.IsLoading
, de typebool
, indique l’état de chargement de l’image. La valeur par défaut de cette propriété estfalse
.IsOpaque
, de typebool
, indique si le moteur de rendu peut traiter l’image comme opaque lors du rendu. La valeur par défaut de cette propriété estfalse
.Source
, de type ImageSource, spécifie la source de l’image.
Ces propriétés sont sauvegardées par BindableProperty des objets, ce qui signifie qu’elles peuvent être styletées et être la cible de liaisons de données.
Remarque
Les icônes de police peuvent être affichées par un Image en spécifiant les données d’icône de police en tant qu’objet FontImageSource . Pour plus d’informations, consultez Afficher les icônes de police.
La ImageSource classe définit les méthodes suivantes qui peuvent être utilisées pour charger une image à partir de différentes sources :
FromFile
retourne uneFileImageSource
image qui lit une image à partir d’un fichier local.FromUri
retourne unUriImageSource
fichier qui télécharge et lit une image à partir d’un URI spécifié.FromStream
retourne uneStreamImageSource
image qui lit une image à partir d’un flux qui fournit des données d’image.
En XAML, les images peuvent être chargées à partir de fichiers et d’URI en spécifiant le nom de fichier ou l’URI comme valeur de chaîne pour la Source
propriété. Les images peuvent également être chargées à partir de flux en XAML via des extensions de balisage personnalisées.
Important
Les images sont affichées à leur résolution complète, sauf si la taille du fichier Image est limitée par sa disposition, ou si la ou WidthRequest la HeightRequest propriété de celle-ci Image est spécifiée.
Pour plus d’informations sur l’ajout d’icônes d’application et d’un écran de démarrage à votre application, consultez icônes d’application et écran de démarrage.
Charger une image locale
Vous pouvez ajouter des images à votre projet d’application en les faisant glisser vers le dossier Resources\Images de votre projet, où son action de génération sera automatiquement définie sur MauiImage. Au moment de la génération, les images vectorielles sont redimensionnées en résolutions correctes pour la plateforme cible et l’appareil, et ajoutées à votre package d’application. Cela est nécessaire, car différentes plateformes prennent en charge différentes résolutions d’images, et le système d’exploitation choisit la résolution d’image appropriée au moment de l’exécution en fonction des fonctionnalités de l’appareil.
Pour respecter les règles d’affectation de noms des ressources Android, tous les noms de fichiers d’image locaux doivent être en minuscules, commencer et se terminer par un caractère de lettre et contenir uniquement des caractères alphanumériques ou des traits de soulignement. Pour plus d’informations, consultez la vue d’ensemble des ressources d’application sur developer.android.com.
Important
.NET MAUI convertit les fichiers SVG en fichiers PNG. Par conséquent, lors de l’ajout d’un fichier SVG à votre projet d’application .NET MAUI, il doit être référencé à partir de XAML ou C# avec une extension .png.
L’adhésion à ces règles pour l’affectation de noms et le placement de fichiers permet au code XAML suivant de charger et d’afficher une image :
<Image Source="dotnet_bot.png" />
Le code C# équivalent est :
Image image = new Image
{
Source = ImageSource.FromFile("dotnet_bot.png")
};
La ImageSource.FromFile
méthode nécessite un string
argument et retourne un nouvel FileImageSource
objet qui lit l’image à partir du fichier. Il existe également un opérateur de conversion implicite qui permet au nom de fichier d’être spécifié en tant qu’argument string
de la Image.Source
propriété :
Image image = new Image { Source = "dotnet_bot.png" };
Charger une image distante
Les images distantes peuvent être téléchargées et affichées en spécifiant un URI comme valeur de la Source
propriété :
<Image Source="https://aka.ms/campus.jpg" />
Le code C# équivalent est :
Image image = new Image
{
Source = ImageSource.FromUri(new Uri("https://aka.ms/campus.jpg"))
};
La ImageSource.FromUri
méthode nécessite un Uri
argument et retourne un nouvel UriImageSource
objet qui lit l’image à partir du Uri
. Il existe également une conversion implicite pour les URI basés sur des chaînes :
Image image = new Image { Source = "https://aka.ms/campus.jpg" };
Mise en cache d’images
La mise en cache des images téléchargées est activée par défaut, avec des images mises en cache stockées pendant 1 jour. Ce comportement peut être modifié en définissant des propriétés de la UriImageSource
classe.
La UriImageSource
classe définit les propriétés suivantes :
Uri
, de typeUri
, représente l’URI de l’image à télécharger pour l’affichage.CacheValidity
, de typeTimeSpan
, spécifie la durée pendant laquelle l’image sera stockée localement. La valeur par défaut de cette propriété est de 1 jour.CachingEnabled
, de typebool
, définit si la mise en cache d’image est activée. La valeur par défaut de cette propriété esttrue
.
Ces propriétés sont sauvegardées par BindableProperty des objets, ce qui signifie qu’elles peuvent être styletées et être la cible de liaisons de données.
Pour définir une période de cache spécifique, définissez la Source
propriété sur un UriImageSource
objet qui définit sa CacheValidity
propriété :
<Image>
<Image.Source>
<UriImageSource Uri="https://aka.ms/campus.jpg"
CacheValidity="10:00:00:00" />
</Image.Source>
</Image>
Le code C# équivalent est :
Image image = new Image();
image.Source = new UriImageSource
{
Uri = new Uri("https://aka.ms/campus.jpg"),
CacheValidity = new TimeSpan(10,0,0,0)
};
Dans cet exemple, la période de mise en cache est définie sur 10 jours.
Charger une image à partir d’un flux
Les images peuvent être chargées à partir de flux avec la ImageSource.FromStream
méthode :
Image image = new Image
{
Source = ImageSource.FromStream(() => stream)
};
Important
La mise en cache d’images est désactivée sur Android lors du chargement d’une image à partir d’un flux avec la ImageSource.FromStream
méthode. Cela est dû au manque de données à partir de laquelle créer une clé de cache raisonnable.
Charger une icône de police
L’extension de FontImage
balisage vous permet d’afficher une icône de police dans n’importe quel affichage pouvant afficher un ImageSource. Il fournit les mêmes fonctionnalités que la FontImageSource classe, mais avec une représentation plus concise.
L’extension FontImage
de balisage est prise en charge par la FontImageExtension classe, qui définit les propriétés suivantes :
FontFamily
de typestring
, la famille de polices à laquelle appartient l’icône de police.Glyph
de typestring
, valeur de caractère unicode de l’icône de police.Color
de type Color, couleur à utiliser lors de l’affichage de l’icône de police.Size
de typedouble
, la taille, en unités indépendantes de l’appareil, de l’icône de police rendue. La valeur par défaut est 30. En outre, cette propriété peut être définie sur une taille de police nommée.
Remarque
L’analyseur XAML permet à la FontImageExtension classe d’être abrégée en tant que FontImage
.
La Glyph
propriété est la propriété de contenu de FontImageExtension. Par conséquent, pour les expressions de balisage XAML exprimées avec accolades, vous pouvez éliminer la Glyph=
partie de l’expression fournie qu’il s’agit du premier argument.
L’exemple XAML suivant montre comment utiliser l’extension de FontImage
balisage :
<Image BackgroundColor="#D1D1D1"
Source="{FontImage , FontFamily=Ionicons, Size=44}" />
Dans cet exemple, la version abrégée du nom de classe FontImageExtension est utilisée pour afficher une icône XBox, à partir de la famille de polices Ionicons, dans un Image:
Bien que le caractère Unicode de l’icône soit \uf30c
, il doit être placé dans le code XAML et devient 
ainsi .
Pour plus d’informations sur l’affichage des icônes de police en spécifiant les données d’icône de police dans un FontImageSource objet, consultez Afficher les icônes de police.
Charger des gif animés
.NET MAUI inclut la prise en charge de l’affichage de fichiers GIF petits et animés. Pour ce faire, définissez la Source
propriété sur un fichier GIF animé :
<Image Source="demo.gif" />
Important
Bien que la prise en charge gif animée dans .NET MAUI inclut la possibilité de télécharger des fichiers, elle ne prend pas en charge la mise en cache ou la diffusion en continu de gif animés.
Par défaut, lorsqu’un GIF animé est chargé, il ne sera pas lu. Cela est dû au fait que la IsAnimationPlaying
propriété, qui contrôle si un GIF animé est en cours de lecture ou arrêté, a une valeur par défaut de false
. Par conséquent, lorsqu’un GIF animé est chargé, il ne sera pas lu tant que la IsAnimationPlaying
propriété n’est pas définie true
sur . La lecture peut être arrêtée en réinitialisant la IsAnimationPlaying
propriété sur false
. Notez que cette propriété n’a aucun effet lors de l’affichage d’une source d’image non GIF.
Contrôler la mise à l’échelle des images
La Aspect
propriété détermine la façon dont l’image sera mise à l’échelle pour s’adapter à la zone d’affichage et doit être définie sur l’un des membres de l’énumération Aspect
:
AspectFit
- les boîtes à lettres de l’image (si nécessaire) afin que l’image entière s’intègre dans la zone d’affichage, avec un espace vide ajouté au haut/bas ou aux côtés selon que l’image est large ou haute.AspectFill
- découpe l’image pour qu’elle remplisse la zone d’affichage tout en conservant les proportions.Fill
- étire l’image pour qu’elle remplisse complètement et exactement la zone d’affichage. Cela peut entraîner une déformation de l’image.Center
- centre l’image dans la zone d’affichage tout en conservant le rapport d’aspect.