Partage via


ImageBrush.ImageSource Propriété

Définition

Obtient ou définit la source d’image affichée par cette ImageBrush. Dans le code, vous définissez cette valeur avec une sous-classe ImageSource instance. En XAML, vous définissez cette valeur avec un URI sur un fichier source d’image.

public:
 property ImageSource ^ ImageSource { ImageSource ^ get(); void set(ImageSource ^ value); };
ImageSource ImageSource();

void ImageSource(ImageSource value);
public ImageSource ImageSource { get; set; }
var imageSource = imageBrush.imageSource;
imageBrush.imageSource = imageSource;
Public Property ImageSource As ImageSource
<ImageBrush ImageSource="imageUri"/>

Valeur de propriété

Objet représentant la source d’image, à afficher par cette ImageBrush lorsqu’elle est appliquée au contenu.

Remarques

La définition d’une source d’image à partir d’un fichier ou d’un flux source d’image est par nature une action asynchrone. La définition d’une valeur 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. Au lieu de cela, il déclenche un événement ImageFailed sur ImageBrush. Si vous souhaitez vérifier qu’un fichier source d’image s’est chargé correctement, vous pouvez gérer ImageOpened pour vérification, ainsi que ImageFailed comme un moyen de fournir une source d’image de secours ou de 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 de l’attribut ImageSource en tant que chaîne représentant un URI (Uniform Resource Identifier). Ce comportement s’appuie sur la conversion de type sous-jacente qui traite la chaîne en tant qu’URI (Uniform Resource Identifier) 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 relatif pour référencer une image que vous empaquetez avec l’application, ou un URI (Uniform Resource Identifier) absolu pour référencer une image d’un serveur. Si vous utilisez une source d’image empaquetée dans le cadre de votre application, il est courant d’utiliser les schémas ms-appx ou ms-resource .

Définition d’ImageSource dans le code

Si vous définissez un ImageBrush à l’aide de code, ImageBrush.ImageSource nécessite un BitmapImage (et non 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 (Uniform Resource Identifier) référençant un fichier, qui inclut du contenu dans votre application qui utilise les schémas ms-appx ou ms-resource , utilisez le constructeur BitmapImage qui prend un URI (Uniform Resource Identifier). Vous pouvez également envisager de gérer l’événement ImageOpened s’il existe des problèmes de délai liés à la récupération ou au décodage de la source de l’image, auquel cas un contenu alternatif peut s’avérer nécessaire à afficher tant que la source de l’image n’est pas disponible. Consultez l’exemple d’images XAML pour obtenir un exemple de code.

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

Notes

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

Sources d’images et mise à l’échelle

Vous devez créer vos sources d’images à plusieurs tailles recommandées, afin de vous assurer que votre application s’affiche bien quand Windows 8 la met à l’échelle. Lorsque vous spécifiez un ImageSource pour un ImageBrush, vous pouvez utiliser une convention de nommage qui référencera automatiquement la ressource appropriée pour la mise à l’échelle actuelle. Pour connaître les spécificités de la convention d’affectation de noms et obtenir plus d’informations, voir Démarrage rapide : Utilisation de ressources de fichiers ou d’images.

Pour plus d’informations sur la conception de la mise à l’échelle, consultez instructions d’expérience utilisateur pour la disposition et la mise à l’échelle.

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

Remarques pour les versions précédentes

Windows 8

Windows 8 rencontré un problème avec la résolution d’ImageSource à partir d’une valeur URI d’attribut XAML, si ImageBrush fait partie d’un style XAML ou d’un modèle appliqué à un contrôle. L’utilisation du contrôle utilise parfois un URI de base spécifique au composant plutôt que l’URI de base approprié pour le style ou le modèle, qui provient généralement de l’application. Le problème est résolu à partir de Windows 8.1 ; l’URI de base est correctement déterminé pour les ressources d’application ou les ressources de composant en fonction de l’étendue qui a besoin de 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 plaçant leurs fichiers sources d’image au « mauvais » emplacement, où l’URI XAML était résolu et où l’application affichait les images. Si vous migrez XAML de Windows 8 vers Windows 8.1 vous devez tester les utilisations d’ImageBrush dans un style ou un modèle à partir de votre code XAML et vérifier que la résolution d’image de votre application fonctionne avec Windows 8.1. Si vous rencontrez un problème, vous devez déplacer vos fichiers source d’image dans le package afin qu’ils se trouvent dans l’étendue de ressources appropriée pour le nouveau comportement.

Les applications qui ont été compilées pour Windows 8, mais qui sont exécutées dans Windows 8.1, continuent d’appliquer le comportement Windows 8.

S’applique à

Voir aussi