Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

UIElement.RenderTransformOrigin, propriété

Obtient ou définit le point central de toute transformation de rendu possible déclarée par RenderTransform, relative aux limites de l'élément. Il s'agit d'une propriété de dépendance.

Espace de noms :  System.Windows
Assembly :  PresentationCore (dans PresentationCore.dll)
XMLNS pour XAML : http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
public Point RenderTransformOrigin { get; set; }
<object>
  <object.RenderTransformOrigin>
    <Point X="xOrigin" Y="yOrigin"/>
  </object.RenderTransformOrigin>
</object>
<object RenderTransformOrigin="xOrigin, yOrigin"/>

Valeurs XAML

xOrigin

Facteur d'origine horizontal. Cela est généralement donné comme une valeur entre 0 et 1. Voir Notes.

yOrigin

Facteur d'origine vertical. Cela est généralement donné comme une valeur entre 0 et 1. Voir Notes.

Valeur de propriété

Type : System.Windows.Point
Valeur qui déclare la transformation de rendu. La valeur par défaut est un Point caractérisé par les coordonnées (0,0).

Champ d'identificateur

RenderTransformOriginProperty

Propriétés de métadonnées ayant la valeur true

Aucun

RenderTransformOrigin présente une utilisation quelque peu non standard de la valeur de structure de Point, dans le sens où Point ne représente pas un emplacement absolu dans un système de coordonnées. Les valeurs entre 0 et 1 sont en fait interprétées comme un facteur pour la plage de l'élément actif, sur les axes X et Y. Par exemple, (0.5,0.5) provoquera le centrage de la transformation de rendu sur l'élément, ou (1,1) placera la transformation de rendu dans l'angle inférieur droit de l'élément. NaN n'est pas une valeur admise.

Les valeurs au delà de 0 et 1 sont également acceptées mais entraînent des effets de transformation plus inhabituels. Par exemple, si vous affectez (5,5) à RenderTransformOrigin, puis appliquez RotateTransform, le point de rotation se trouve alors vraiment en dehors des limites de l'élément même. La transformation fait ainsi tourner votre élément en suivant un grand cercle dont l'origine se situe au delà du point droit inférieur. Cette origine peut se trouver quelque part à l'intérieur de son élément parent, voire en dehors de l'image ou de la zone d'affichage. Les valeurs de points négatives sont semblables et se placent au delà des limites supérieures gauches.

Les transformations de rendu n'affectent pas la disposition et sont en général utilisées pour animer ou appliquer un effet temporaire à un élément.

L'exemple suivant génère des éléments par code, applique RenderTransformOrigin, puis RenderTransform.


public RotateAboutCenterExample()
{
    this.WindowTitle = "Rotate About Center Example";
    NameScope.SetNameScope(this, new NameScope());
    StackPanel myStackPanel = new StackPanel();
    myStackPanel.Margin = new Thickness(50);

    Button myButton = new Button();
    myButton.Name = "myRenderTransformButton";
    this.RegisterName(myButton.Name,myButton);
    myButton.RenderTransformOrigin = new Point(0.5,0.5);
    myButton.HorizontalAlignment = HorizontalAlignment.Left;
    myButton.Content = "Hello World";


    RotateTransform myRotateTransform = new RotateTransform(0);
    myButton.RenderTransform = myRotateTransform;
    this.RegisterName("MyAnimatedTransform",myRotateTransform);

    myStackPanel.Children.Add(myButton);

    //
    // Creates an animation that accelerates through 40% of its duration and
    //      decelerates through the 60% of its duration.
    //
    DoubleAnimation myRotateAboutCenterAnimation = new DoubleAnimation();
    Storyboard.SetTargetName(myRotateAboutCenterAnimation,"MyAnimatedTransform");
    Storyboard.SetTargetProperty(myRotateAboutCenterAnimation,new PropertyPath(RotateTransform.AngleProperty));
    myRotateAboutCenterAnimation.From = 0.0;
    myRotateAboutCenterAnimation.To = 360;
    myRotateAboutCenterAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1000));

    // Create a Storyboard to contain the animations and
    // add the animations to the Storyboard.
    Storyboard myStoryboard = new Storyboard();
    myStoryboard.Children.Add(myRotateAboutCenterAnimation);

    // Create an EventTrigger and a BeginStoryboard action to
    // start the storyboard.
    EventTrigger myEventTrigger = new EventTrigger();
    myEventTrigger.RoutedEvent = Button.ClickEvent;
    myEventTrigger.SourceName = myButton.Name;
    BeginStoryboard myBeginStoryboard = new BeginStoryboard();
    myBeginStoryboard.Storyboard = myStoryboard;
    myEventTrigger.Actions.Add(myBeginStoryboard);
    myStackPanel.Triggers.Add(myEventTrigger);

    this.Content = myStackPanel;
}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ