Comment : utiliser l'élément Image
Mise à jour : novembre 2007
Cet exemple indique comment inclure des images dans une application à l'aide de l'élément Image.
Exemple
L'exemple suivant montre comment restituer une image de 200 pixels de large. Dans cet exemple XAML (Extensible Application Markup Language), la syntaxe d'attribut et de propriété Tag est utilisée pour définir l'image. Pour plus d'informations sur la syntaxe d'attribut et la syntaxe de propriété, consultez Vue d'ensemble des propriétés de dépendance. Un BitmapImage est utilisé pour définir les données sources de l'image et est défini explicitement pour l'exemple de syntaxe de la propriété Tag. De plus, le DecodePixelWidth du BitmapImage a pour valeur la même largeur que le Width du Image. Cela garantit que la quantité de mémoire minimale soit utilisée lors de la restitution de l'image.
Remarque : |
---|
En général, si vous souhaitez spécifier la taille d'une image rendue, indiquez uniquement le Width ou le Height, mais pas les deux à la fois. Si vous en spécifiez un seulement, les proportions de l'image sont conservées. Sinon, l'image peut apparaître étirée ou déformée de façon inattendue. Pour contrôler le comportement d'étirement de l'image, utilisez les propriétés Stretch et StretchDirection. |
Remarque : |
---|
Lorsque vous spécifiez la taille d'une image avec Width ou Height, vous devez également affecter à DecodePixelWidth ou DecodePixelHeight la même taille respective. |
La propriété Stretch détermine comment la source d'image est étirée pour remplir l'élément d'image. Pour plus d'informations, consultez l'énumération Stretch.
<!-- Simple image rendering. However, rendering an image this way may not
result in the best use of application memory. See markup below which
creates the same end result but using less memory. -->
<Image Width="200"
Source="C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Water Lilies.jpg"/>
<Image Width="200">
<Image.Source>
<!-- To save significant application memory, set the DecodePixelWidth or
DecodePixelHeight of the BitmapImage value of the image source to the desired
height and width of the rendered image. If you don't do this, the application will
cache the image as though it were rendered as its normal size rather then just
the size that is displayed. -->
<!-- Note: In order to preserve aspect ratio, only set either DecodePixelWidth
or DecodePixelHeight but not both. -->
<BitmapImage DecodePixelWidth="200"
UriSource="C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Water Lilies.jpg" />
</Image.Source>
</Image>
L'exemple suivant montre comment restituer une image de 200 pixels de large à l'aide de code.
Remarque : |
---|
Les propriétés BitmapImage doivent être définies dans un bloc BeginInit et EndInit. |
' Create Image Element
Dim myImage As New Image()
myImage.Width = 200
' Create source
Dim myBitmapImage As New BitmapImage()
' BitmapImage.UriSource must be in a BeginInit/EndInit block
myBitmapImage.BeginInit()
myBitmapImage.UriSource = New Uri("C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Water Lilies.jpg")
' To save significant application memory, set the DecodePixelWidth or
' DecodePixelHeight of the BitmapImage value of the image source to the desired
' height or width of the rendered image. If you don't do this, the application will
' cache the image as though it were rendered as its normal size rather then just
' the size that is displayed.
' Note: In order to preserve aspect ratio, set DecodePixelWidth
' or DecodePixelHeight but not both.
myBitmapImage.DecodePixelWidth = 200
myBitmapImage.EndInit()
'set image source
myImage.Source = myBitmapImage
// Create Image Element
Image myImage = new Image();
myImage.Width = 200;
// Create source
BitmapImage myBitmapImage = new BitmapImage();
// BitmapImage.UriSource must be in a BeginInit/EndInit block
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(@"C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Water Lilies.jpg");
// To save significant application memory, set the DecodePixelWidth or
// DecodePixelHeight of the BitmapImage value of the image source to the desired
// height or width of the rendered image. If you don't do this, the application will
// cache the image as though it were rendered as its normal size rather then just
// the size that is displayed.
// Note: In order to preserve aspect ratio, set DecodePixelWidth
// or DecodePixelHeight but not both.
myBitmapImage.DecodePixelWidth = 200;
myBitmapImage.EndInit();
//set image source
myImage.Source = myBitmapImage;