ScaleTransform, classe
Mise à jour : novembre 2007
Met à l'échelle un objet dans le système de coordonnées x-y 2D
Assembly : PresentationCore (dans PresentationCore.dll)
XMLNS pour XAML : http://schemas.microsoft.com/winfx/xaml/presentation
Utilisez un ScaleTransform pour étirer ou réduire un objet horizontalement ou verticalement. La propriété ScaleX de combien étirer ou réduire un objet le long de l'axe X, et la propriété ScaleY spécifie de combien étirer ou réduire un objet le long de l'axe Y. Les opérations d'échelle sont centrées sur le point spécifié par les propriétés CenterX et CenterY.
Fonctionnalités Freezable : dans la mesure où elle hérite de la classe Freezable, la classe ScaleTransform propose plusieurs fonctionnalités spéciales : les objets ScaleTransform peuvent être déclarés en tant que ressources, partagés entre plusieurs objets, définis en lecture seule pour améliorer les performances, clonés et thread-safe. Pour plus d'informations sur les différentes fonctionnalités fournies par les objets Freezable, consultez Vue d'ensemble des objets Freezable.
Cet exemple montre comment utiliser un ScaleTransform pour mettre à l'échelle un élément.
Utilisez les propriétés ScaleX et ScaleY pour redimensionner l'élément selon le facteur spécifié. Par exemple, une valeur ScaleX de 1.5 étire l'élément à 150 % de sa largeur d'origine. Une valeur ScaleY de 0.5 diminue la hauteur d'un élément de 50 %.
Utilisez les propriétés CenterX et CenterY pour spécifier le point correspondant au centre de l'opération de mise à l'échelle. Par défaut, un ScaleTransform est centré au point (0,0), c'est-à-dire à l'angle supérieur gauche du rectangle. L'élément est ainsi déplacé et paraît plus grand, car lorsque vous appliquez un Transform, vous modifiez l'espace de coordonnées dans lequel l'objet réside.
L'exemple suivant utilise un ScaleTransform pour doubler la taille d'un Rectangle de 50 par 50. Le ScaleTransform a une valeur de 0 (la valeur par défaut) pour CenterX et CenterY.
<!-- Scales a rectangle by 200% from a center of (0,0).--> <Rectangle Height="50" Width="50" Fill="#CCCCCCFF" Stroke="Blue" StrokeThickness="2" Canvas.Left="100" Canvas.Top="100"> <Rectangle.RenderTransform> <ScaleTransform CenterX="0" CenterY="0" ScaleX="2" ScaleY="2" /> </Rectangle.RenderTransform> </Rectangle>
En général, vous définissez CenterX et CenterY sur le centre de l'objet mis à l'échelle : (Width/2, Height/2).
L'exemple suivant affiche un autre Rectangle dont la taille est doublée. Toutefois, ce ScaleTransform a une valeur de 25 pour CenterX et CenterY, ce qui correspond au centre du rectangle.
<!-- Scales a rectangle by 200% from a center of (25,25).--> <Rectangle Height="50" Width="50" Fill="#CCCCCCFF" Canvas.Left="100" Canvas.Top="100" Stroke="Blue" StrokeThickness="2"> <Rectangle.RenderTransform> <ScaleTransform CenterX="25" CenterY="25" ScaleX="2" ScaleY="2" /> </Rectangle.RenderTransform> </Rectangle>
L'illustration suivante montre la différence entre les deux opérations ScaleTransform. La ligne en pointillés affiche la taille et la position du rectangle avant la mise à l'échelle.

Pour l'exemple complet, consultez Transformations 2D, exemple.
Davantage de code
| Comment : retourner un UIElement horizontalement ou verticalement | Cet exemple explique comment utiliser ScaleTransform pour retourner un UIElement horizontalement ou verticalement. Dans cet exemple, un contrôle Button (un type de UIElement) est retourné en appliquant un ScaleTransform à sa propriété RenderTransform. |
| Comment : animer la taille d'un FrameworkElement | Pour animer la taille d'un FrameworkElement, vous pouvez animer ses propriétés Width et Height ou utiliser un ScaleTransform animé. |
| Comment : appliquer une transformation à un élément lorsqu'un événement se produit | Cet exemple montre comment appliquer un ScaleTransform lorsqu'un événement se produit. Le concept présenté ici est le même que vous utilisez pour l'application d'autres types de transformations. Pour plus d'informations sur les types de transformations disponibles, consultez la classe Transform ou Vue d'ensemble des transformations. |
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.