UIElement.RenderTransformOrigin Eigenschaft

Definition

Ruft den Mittelpunkt einer möglichen Rendertransformation ab, die von RenderTransform in Bezug zu den Grenzen des Elements deklariert ist, bzw. legt diesen fest.Gets or sets the center point of any possible render transform declared by RenderTransform, relative to the bounds of the element. Hierbei handelt es sich um eine Abhängigkeitseigenschaft.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

Eigenschaftswert

Der Wert, der die Rendertransformation deklariert.The value that declares the render transform. Der Standardwert ist ein Point mit den Koordinaten (0,0).The default value is a Point with coordinates (0,0).

Beispiele

Im folgenden Beispiel werden Elemente im Code erstellt, ein RenderTransformOriginangewendet und dann ein RenderTransformangewendet.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

Hinweise

RenderTransformOrigin hat eine etwas nicht dem Standard entsprechende Verwendung des Point Struktur Werts, da der Point keinen absoluten Speicherort in einem Koordinatensystem darstellt.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. Stattdessen werden Werte zwischen 0 und 1 als Faktor für den Bereich des aktuellen Elements in jeder x-y-Achse interpretiert.Instead, values between 0 and 1 are interpreted as a factor for the range of the current element in each x,y axis. Beispielsweise bewirkt (0,5, 0,5), dass die Rendertransformation auf das Element zentriert wird, oder (1, 1) würde die Rendertransformation in der unteren rechten Ecke des Elements platzieren.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 ist kein akzeptierter Wert.NaN is not an accepted value.

Werte, die größer als 0 und 1 sind, werden ebenfalls akzeptiert. Dies führt zu unkonventionelleren Transformations Effekten.Values beyond 0 and 1 are also accepted, and will result in more unconventional transform effects. Wenn Sie RenderTransformOrigin beispielsweise auf (5, 5) festlegen und dann eine RotateTransformanwenden, ist der Drehpunkt außerhalb der Grenzen des Elements selbst.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. Die Transformation dreht das Element in einem großen Kreis, der über der untersten rechten Seite liegt.The transform will spin your element around in a big circle that originates beyond bottom right. Der Ursprung befindet sich möglicherweise in seinem übergeordneten Element und kann möglicherweise außerhalb des Frames oder der Sicht liegen.The origin might be somewhere inside its parent element and could possibly be possibly out of frame or view. Negative Punktwerte sind ähnlich. Diese werden über die oberen linken Grenzen hinausgehen.Negative point values are similar, these will go beyond the top left bounds.

Rendertransformationen wirken sich nicht auf das Layout aus, und werden in der Regel verwendet, um einen temporären Effekt auf ein Element zu animieren.Render transforms do not affect layout, and are typically used to animate or apply a temporary effect to an element.

Verwendung von XAML-AttributenXAML Attribute Usage

<object RenderTransformOrigin="xOrigin, yOrigin"/>  

Verwendung von XAML-EigenschaftenelementenXAML Property Element Usage

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

XAML-WerteXAML Values

XORIGINxOrigin
Der horizontale Ursprungs Faktor.The horizontal origin factor. Dies wird in der Regel als Wert zwischen 0 und 1 angegeben.This is typically given as a value between 0 and 1. Siehe Hinweise.See Remarks.

YORIGINyOrigin
Der vertikale Ursprungs Faktor.The vertical origin factor. Dies wird in der Regel als Wert zwischen 0 und 1 angegeben.This is typically given as a value between 0 and 1. Siehe Hinweise.See Remarks.

Informationen zur AbhängigkeitseigenschaftDependency Property Information

BezeichnerfeldIdentifier field RenderTransformOriginProperty
Metadateneigenschaften auf true festgelegtMetadata properties set to true KeineNone

Gilt für:

Siehe auch