Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

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. C'est 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 définies à 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.

Ajouts de la communauté

Afficher:
© 2014 Microsoft