Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

ImageBrush.ImageSource Property

Obtient ou définit la source d'image affichée par ce ImageBrush. Dans le code, vous définissez la source d'image avec une instance de sous-classe ImageSource. En XAML, vous définissez la source d'image avec un URI vers un fichier source d'image.

Syntaxe


public ImageSource ImageSource { get; set; }


<ImageBrush ImageSource="imageUri"/>

XAML Values

imageUri

URI qui référence un fichier image.

Valeur de la propriété

Type: ImageSource

Objet représentant la source d'image, à afficher par cet ImageBrush lorsqu'il est appliqué au contenu.

Remarques

La définition d'une source d'image à partir d'un fichier source d'image ou d'un flux d'image est fondamentalement une action asynchrone. La définition de la source sur une valeur d'URI (Uniform Resource Identifier) qui ne peut pas être résolue en un fichier source d'image valide ne génère pas d'erreur. Cela déclenche plutôt un événement ImageFailed sur l'objet ImageBrush. Pour vérifier qu'un fichier source d'image s'est chargé correctement, vous pouvez traiter ImageOpened pour effectuer la vérification, ainsi que ImageFailed pour fournir une source d'image de secours ou recomposer votre interface utilisateur.

Définition d'ImageSource en XAML

Vous pouvez définir cette propriété en XAML, mais dans ce cas vous définissez la valeur d'attribut ImageSource en tant que chaîne représentant un URI. Ce comportement repose sur la conversion de type sous-jacent qui traite cette chaîne comme un URI, et appelle l'équivalent interne du constructeur BitmapImage(Uri).

L'événement ImageFailed peut se produire si la valeur d'attribut ImageSource initiale en XAML ne spécifie pas de source valide. Vous pouvez utiliser un chemin d'accès relatif pour référencer une image que vous empaquetez avec l'application, ou un URI absolu pour référencer une image à partir d'un serveur. Si vous utilisez une source d'image empaquetée dans une votre application, il est courant d'utiliser les modèles ms-appx ou ms-resource.

Définition d'ImageSource dans le code

Si vous définissez un ImageBrush à l'aide de code, ImageBrush.ImageSource requiert un BitmapImage (pas un URI) dans le code. Si votre source est un flux, utilisez la méthode SetSourceAsync pour initialiser la valeur. Si votre source est un URI qui référence un fichier, lequel inclut le contenu de votre application qui utilise les schémas ms-appx ou ms-resource, utilisez le constructeur BitmapImage qui accepte un URI. Vous pouvez aussi envisager de gérer l'événement ImageOpened même s'il existe des problèmes de synchronisation pour récupérer ou décoder la source d'image, auquel cas vous pouvez avoir besoin d'afficher un contenu de remplacement jusqu'à ce que la source d'image soit disponible. Consultez la section XAML images sample (exemple d'images XAML) comme exemple de code.

Si vous devez composer un URI par rapport à un autre objet de l'interface utilisateur pour faciliter la portée de la demande de ressource, vous pouvez parfois utiliser la propriété FrameworkElement.BaseUri comme elle est appelée sur un autre objet de l'interface utilisateur. Cela fournit l'URI de base qui se situe à l'endroit d'où provient la page XAML dans la structure de projet de l'application.

Remarque  Vous pouvez utiliser la gestion automatique pour accéder aux ressources non qualifiées avec les qualificateurs actuels d'échelle et de culture, ou vous pouvez utiliser ResourceManager et ResourceMap avec les qualificateurs de culture et d'échelle obtenir les ressources directement. Pour plus d'informations, consultez Système de gestion des ressources.

Source et mise à l'échelle de l'image

Vous devez créer vos sources d'image à plusieurs tailles recommandées pour garantir un affichage correcte de votre application lorsque Windows 8 la met à l'échelle. En spécifiant une ImageSource pour une ImageBrush, vous pouvez utiliser une convention d'affectation de noms qui référencera automatiquement la ressource appropriée pour la mise à l'échelle actuelle. Pour obtenir les caractéristiques spécifiques sur la convention d'affectation de noms et plus d'informations, consultez la rubrique Démarrage rapide : utilisation des ressources de fichier ou d'image.

Pour plus d'informations sur la conception de la mise à l'échelle, consultez la rubrique Instructions relatives à la mise à l'échelle à la densité de pixels.

Pour plus d'informations sur les ressources d'application et sur la façon d'empaqueter des sources d'image dans une application, consultez Définition des ressources d'application.

Comportement Windows 8

Windows 8 présentait un problème de résolution de ImageSource à partir d'une valeur d'URI d'un attribut XAML, si ImageBrush faisait partie d'un style XAML ou d'un modèle appliqué à un contrôle. L'utilisation de contrôle utilise parfois l'URI de base spécifique aux composants plutôt que l'URI de base approprié pour le style ou le modèle, qui provient habituellement de l'application. Le problème est résolu dans Windows 8.1 ; l'URI de base est correctement déterminé par des ressources d'application ou des ressources de composant selon la portée qui requiert l'URI de base. Les applications qui ont été compilées pour Windows 8 ont peut-être utilisé des solutions de contournement pour ce comportement, en mettant leurs fichiers sources d'image dans l'emplacement « incorrect », où l'URI XAML les résoudrait et l'application afficherait les images. Si vous migrez XAML de Windows 8 vers Windows 8.1, vous devez tester toutes les utilisations du ImageBrush dans un style ou un modèle de votre XAML et vérifier que la résolution d'image de votre application fonctionne avec Windows 8.1. En cas de problème, vous devez déplacer vos fichiers sources d'image à l'intérieur du package afin qu'ils se trouvent dans la portée de la ressource correcte pour le nouveau comportement.

Les applications qui ont été compilées pour Windows 8 mais qui s'exécutent sur Windows 8.1 continuent à utiliser le comportement Windows 8.

Conditions requises

Client minimal pris en charge

Windows 8

Serveur minimal pris en charge

Windows Server 2012

Espace de noms

Windows.UI.Xaml.Media
Windows::UI::Xaml::Media [C++]

Métadonnées

Windows.winmd

Voir aussi

ImageBrush
BitmapImage
Image
Démarrage rapide : Image et ImageBrush

 

 

Afficher:
© 2015 Microsoft