UIElement.RenderTransformOrigin Propriedade

Definição

Obtém ou define o ponto central de qualquer transformação de renderização possível declarada por RenderTransform, em relação aos limites do elemento.Gets or sets the center point of any possible render transform declared by RenderTransform, relative to the bounds of the element. É uma propriedade de dependência.This is a dependency property.

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

Valor da propriedade

O valor que declara a transformação de renderização.The value that declares the render transform. O valor padrão é um Point com coordenadas (0,0).The default value is a Point with coordinates (0,0).

Exemplos

O exemplo a seguir cria elementos no código, aplica um RenderTransformOrigine, em seguida, aplica uma RenderTransform.The following example builds up elements in code, applies a RenderTransformOrigin, and then applies a 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

Comentários

RenderTransformOrigin tem um uso um pouco não padrão do valor da estrutura de Point, pois o Point não representa um local absoluto em um sistema de coordenadas.RenderTransformOrigin has a somewhat nonstandard use of the Point structure value, in that the Point does not represent an absolute location in a coordinate system. Em vez disso, os valores entre 0 e 1 são interpretados como um fator para o intervalo do elemento atual em cada eixo x, y.Instead, values between 0 and 1 are interpreted as a factor for the range of the current element in each x,y axis. Por exemplo, (0,5, 0.5) fará com que a transformação de renderização seja centralizada no elemento, ou (1, 1) colocaria a transformação renderizar no canto inferior direito do elemento.For example, (0.5,0.5) will cause the render transform to be centered on the element, or (1,1) would place the render transform at the bottom right corner of the element. NaN não é um valor aceito.NaN is not an accepted value.

Os valores além de 0 e 1 também são aceitos e resultarão em mais efeitos de transformação não convencionais.Values beyond 0 and 1 are also accepted, and will result in more unconventional transform effects. Por exemplo, se você definir RenderTransformOrigin como (5, 5) e, em seguida, aplicar um RotateTransform, o ponto de rotação estará bem fora dos limites do próprio elemento.For instance, if you set RenderTransformOrigin to be (5,5), and then apply a RotateTransform, the rotation point will be well outside the bounds of the element itself. A transformação girará seu elemento em um grande círculo que se origina além do canto inferior direito.The transform will spin your element around in a big circle that originates beyond bottom right. A origem pode estar em algum lugar dentro de seu elemento pai e possivelmente pode estar fora do quadro ou da exibição.The origin might be somewhere inside its parent element and could possibly be possibly out of frame or view. Os valores de ponto negativos são semelhantes, que vão além dos limites superiores à esquerda.Negative point values are similar, these will go beyond the top left bounds.

As transformações de renderização não afetam o layout e normalmente são usadas para animar ou aplicar um efeito temporário a um elemento.Render transforms do not affect layout, and are typically used to animate or apply a temporary effect to an element.

Uso do Atributo XAMLXAML Attribute Usage

<object RenderTransformOrigin="xOrigin, yOrigin"/>  

Uso do elemento propriedade XAMLXAML Property Element Usage

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

Valores XAMLXAML Values

xOriginxOrigin
O fator de origem horizontal.The horizontal origin factor. Normalmente, isso é fornecido como um valor entre 0 e 1.This is typically given as a value between 0 and 1. Consulte Observações.See Remarks.

yOriginyOrigin
O fator de origem vertical.The vertical origin factor. Normalmente, isso é fornecido como um valor entre 0 e 1.This is typically given as a value between 0 and 1. Consulte Observações.See Remarks.

Informações de Propriedade de DependênciaDependency Property Information

Campo de identificadorIdentifier field RenderTransformOriginProperty
Propriedades de metadados definidas como trueMetadata properties set to true NenhumNone

Aplica-se a

Veja também