UIElement.RenderTransformOrigin Propriété

Définition

Obtient ou définit le point d’origine de toute transformation de rendu possible déclarée par RenderTransform, par rapport aux limites de l’élément UIElement.

public:
 property Point RenderTransformOrigin { Point get(); void set(Point value); };
Point RenderTransformOrigin();

void RenderTransformOrigin(Point value);
public Point RenderTransformOrigin { get; set; }
var point = uIElement.renderTransformOrigin;
uIElement.renderTransformOrigin = point;
Public Property RenderTransformOrigin As Point
<uiElement RenderTransformOrigin="x,y"/>

Valeur de propriété

Point d’origine de la transformation de rendu. La valeur par défaut est point avec la valeur 0,0.

Exemples

Cet exemple XAML montre comment définir RenderTransformOrigin sur l’élément dans le code XAML initial. Une animation qui s’exécute sur un CompositeTransform initialement par défaut peut utiliser RenderTransformOrigin pour modifier les transformations d’échelle et de rotation à appliquer au centre des cercles plutôt qu’à l’origine de coordonnée 0,0 par défaut. Cela donne l’impression que le cercle tourne autour de son centre et se réduit en place.

Notes

Pour démarrer l’animation, vous devez la récupérer à partir de Ressources et appeler Begin ; ce code n’est pas affiché.

<Ellipse x:Name="e1" RenderTransformOrigin=".5,.5" Height="100" Width="100" Loaded="e1_Loaded_1">
    <Ellipse.Fill>
        <LinearGradientBrush>
            <GradientStop Color="Red" Offset="0"/>
            <GradientStop Color="Green" Offset="1"/>
        </LinearGradientBrush>
    </Ellipse.Fill>
    <Ellipse.RenderTransform>
        <CompositeTransform />
    </Ellipse.RenderTransform>
    <Ellipse.Resources>
        <Storyboard x:Name="esb1" >
            <DoubleAnimation RepeatBehavior="3x" Duration="0:0:3" From="0" To="360" Storyboard.TargetName="e1" 
              Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" />
            <DoubleAnimation RepeatBehavior="1x" Duration="0:0:7" From="1" To="0" Storyboard.TargetName="e1" 
              Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleX)" />
            <DoubleAnimation RepeatBehavior="1x" Duration="0:0:7" From="1" To="0" Storyboard.TargetName="e1" 
              Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleY)" />
        </Storyboard>
    </Ellipse.Resources>
</Ellipse>

Remarques

RenderTransformOrigin vous permet de créer ou de modifier l’effet d’une transformation sur un élément particulier sans avoir à modifier les spécificités de la transformation RenderTransform . La valeur Point que vous spécifiez pour RenderTransformOrigin n’est pas basée sur les mesures de pixels réelles. Au lieu de cela, il s’agit d’un point logique, où une valeur de 0,0 fait référence au coin supérieur gauche de la zone de rendu UIElement globale, et 1,1 fait référence à la partie inférieure droite. La valeur est ensuite évaluée en coordonnée X,Y en la factorisant dans l’espace de coordonnées actuel de l’élément UIElement.

Pour certaines transformations, l’origine n’a pas d’importance. Par exemple, renderTransformOrigin ne modifie pas le comportement d’un TranslateTransform appliqué à la propriété RenderTransform .

Certains types de transformation ont leurs propres propriétés pour spécifier l’origine de la transformation. Par exemple, RotateTransform a CenterX et CenterY. Lorsque vous utilisez un élément UIElement, les outils de conception visuelle masquent parfois ces autres propriétés afin d’utiliser Uniquement RenderTransformOrigin pour toutes les modifications d’origine de transformation et de laisser les origines spécifiques à la transformation comme valeurs par défaut. Les outils peuvent également appliquer tous les effets de transformation à une seule valeur CompositeTransform pour RenderTransform, au lieu de définir des éléments XAML pour les transformations spécifiques et de créer un TransformGroup. Si vous écrivez votre propre code XAML ou définissez des transformations dans du code, vous pouvez envisager de suivre ces mêmes pratiques afin de toujours utiliser RenderTransformOrigin plutôt que les valeurs d’origine spécifiques à la transformation si vous appliquez des transformations pour RenderTransform. Sinon, les valeurs seront décalées l’une de l’autre.

Une technique courante consiste à définir RenderTransformOrigin sur 0.5,0.5, ce qui place l’origine au centre de l’élément. Vous pouvez ensuite appliquer un RotateTransform pour faire pivoter l’élément autour du centre.

La modification de FlowDirection en RightToLeft modifie la signification de la coordonnée X d’un RenderTransformOrigin pour un UIElement ; 0 sera le bord droit.

Certains des effets visuels que vous pouvez produire avec RenderTransform et RenderTransformOrigin peuvent également être obtenus avec Projection et un PlanProjection. Par exemple, vous pouvez faire pivoter un élément UIElement autour de son centre en modifiant PlaneProjection.RotationZ.

S’applique à

Voir aussi