UIElement.RenderTransformOrigin Propriété

Définition

Obtient ou définit le point central des transformations de rendu possibles déclarées par RenderTransform par rapport aux limites de l’élément. Il s’agit d’une propriété de dépendance.

public:
 property System::Windows::Point RenderTransformOrigin { System::Windows::Point get(); void set(System::Windows::Point value); };
public System.Windows.Point RenderTransformOrigin { get; set; }
member this.RenderTransformOrigin : System.Windows.Point with get, set
Public Property RenderTransformOrigin As Point

Valeur de propriété

Valeur qui déclare la transformation de rendu. La valeur par défaut est Point avec les coordonnées (0,0).

Exemples

L’exemple suivant crée des éléments dans du code, applique un RenderTransformOrigin, puis applique un 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;
}
Public Sub New()
    Me.WindowTitle = "Rotate About Center Example"
    NameScope.SetNameScope(Me, New NameScope())
    Dim myStackPanel As New StackPanel()
    myStackPanel.Margin = New Thickness(50)

    Dim myButton As New Button()
    myButton.Name = "myRenderTransformButton"
    Me.RegisterName(myButton.Name,myButton)
    myButton.RenderTransformOrigin = New Point(0.5,0.5)
    myButton.HorizontalAlignment = HorizontalAlignment.Left
    myButton.Content = "Hello World"


    Dim myRotateTransform As New RotateTransform(0)
    myButton.RenderTransform = myRotateTransform
    Me.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.
    '
    Dim myRotateAboutCenterAnimation As 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.
    Dim myStoryboard As New Storyboard()
    myStoryboard.Children.Add(myRotateAboutCenterAnimation)

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

    Me.Content = myStackPanel
End Sub

Remarques

RenderTransformOrigin a une utilisation quelque peu non standard de la valeur de structure Point , en ce que ne Point représente pas un emplacement absolu dans un système de coordonnées. Au lieu de cela, les valeurs comprises entre 0 et 1 sont interprétées comme un facteur pour la plage de l’élément actuel dans chaque axe x,y. Par exemple, (0.5,0.5) entraîne le centre de la transformation de rendu sur l’élément, ou (1,1) place la transformation de rendu dans le coin inférieur droit de l’élément. NaN n’est pas une valeur acceptée.

Les valeurs au-delà de 0 et 1 sont également acceptées et entraîneront des effets de transformation plus non conventionnels. Par instance, si vous définissez RenderTransformOrigin sur (5,5), puis appliquez un RotateTransform, le point de rotation sera bien en dehors des limites de l’élément lui-même. La transformation fera tourner votre élément dans un grand cercle qui provient au-delà du bas à droite. L’origine peut se trouver quelque part à l’intérieur de son élément parent et peut être éventuellement hors cadre ou vue. Les valeurs de points négatifs sont similaires, elles vont au-delà des limites supérieure gauche.

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

Utilisation d'attributs XAML

<object RenderTransformOrigin="xOrigin, yOrigin"/>  

Utilisation des éléments de propriété XAML

<object>  
  <object.RenderTransformOrigin>  
    <Point X=" xOrigin " Y=" yOrigin "/>  
  </object.RenderTransformOrigin>  
</object>  

Valeurs XAML

xOrigin
Facteur d’origine horizontal. Cela est généralement donné sous la forme d’une valeur comprise entre 0 et 1. Consultez la section Notes.

yOrigin
Facteur d’origine vertical. Cela est généralement donné sous la forme d’une valeur comprise entre 0 et 1. Consultez la section Notes.

Informations sur les propriétés de dépendance

Champ Identificateur RenderTransformOriginProperty
Propriétés de métadonnées définies sur true Aucun

S’applique à

Voir aussi