UIElement.RenderTransformOrigin Eigenschaft

Definition

Ruft den Ursprungspunkt einer möglichen Rendertransformation ab, die von RenderTransform deklariert wurde, relativ zu den Begrenzungen des UIElements, oder legt diesen fest.

public:
 property Point RenderTransformOrigin { Point get(); void set(Point value); };
Point RenderTransformOrigin();

void RenderTransformOrigin(Point value);
public Point RenderTransformOrigin { get; set; }
var point = uIElement.renderTransformOrigin;
uIElement.renderTransformOrigin = point;
Public Property RenderTransformOrigin As Point
<uiElement RenderTransformOrigin="x,y"/>

Eigenschaftswert

Der Ursprungspunkt der Rendertransformation. Der Standardwert ist ein Punkt mit dem Wert 0,0.

Beispiele

In diesem XAML-Beispiel wird gezeigt, wie RenderTransformOrigin für das -Element im anfänglichen XAML-Code festgelegt wird. Eine Animation, die auf einem ursprünglich standardmäßigen CompositeTransform ausgeführt wird, kann renderTransformOrigin verwenden, um sowohl die Transformationen für die Skalierung als auch die Drehung so zu ändern, dass sie auf die Mitte der Kreise angewendet werden, anstatt den Standardmäßigen 0,0-Koordinatenursprung. Dies lässt den Anschein, als würde sich der Kreis um seine Mitte drehen und verkleinern.

Hinweis

Um die Animation zu starten, müssen Sie sie aus Ressourcen abrufen und Begin aufrufen. Dieser Code wird nicht angezeigt.

<Ellipse x:Name="e1" RenderTransformOrigin=".5,.5" Height="100" Width="100" Loaded="e1_Loaded_1">
    <Ellipse.Fill>
        <LinearGradientBrush>
            <GradientStop Color="Red" Offset="0"/>
            <GradientStop Color="Green" Offset="1"/>
        </LinearGradientBrush>
    </Ellipse.Fill>
    <Ellipse.RenderTransform>
        <CompositeTransform />
    </Ellipse.RenderTransform>
    <Ellipse.Resources>
        <Storyboard x:Name="esb1" >
            <DoubleAnimation RepeatBehavior="3x" Duration="0:0:3" From="0" To="360" Storyboard.TargetName="e1" 
              Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" />
            <DoubleAnimation RepeatBehavior="1x" Duration="0:0:7" From="1" To="0" Storyboard.TargetName="e1" 
              Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleX)" />
            <DoubleAnimation RepeatBehavior="1x" Duration="0:0:7" From="1" To="0" Storyboard.TargetName="e1" 
              Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleY)" />
        </Storyboard>
    </Ellipse.Resources>
</Ellipse>

Hinweise

Mit RenderTransformOrigin können Sie die Auswirkung einer Transformation auf ein bestimmtes Element erstellen oder ändern, ohne die Besonderheiten der RenderTransform-Transformation ändern zu müssen. Der Punktwert, den Sie für RenderTransformOrigin angeben, basiert nicht auf tatsächlichen Pixelmaßen. Stattdessen handelt es sich um einen logischen Punkt, bei dem sich der Wert 0,0 auf die obere linke Ecke des gesamten UIElement-Renderbereichs und 1,1 auf die untere rechte Ecke bezieht. Der Wert wird dann in eine X,Y-Koordinate ausgewertet, indem er in den aktuellen Koordinatenbereich des UIElements eingegliedert wird.

Bei einigen Transformationen spielt der Ursprung keine Rolle. Beispielsweise ändert renderTransformOrigin nicht das Verhalten einer TranslateTransform , die auf die RenderTransform-Eigenschaft angewendet wird.

Einige Transformationstypen verfügen über eigene Eigenschaften zum Angeben des Ursprungs der Transformation. Beispielsweise verfügt RotateTransform über CenterX und CenterY. Wenn Sie mit einem UIElement arbeiten, blenden visuelle Designtools manchmal diese anderen Eigenschaften aus, sodass Sie nur RenderTransformOrigin für alle Transformationsherkunftsänderungen verwenden und transformationsspezifische Ursprünge als Standard beibehalten. Tools können auch alle Transformationseffekte auf einen einzelnen CompositeTransform-Wert für RenderTransform anwenden, anstatt XAML-Elemente für die spezifischen Transformationen zu definieren und eine TransformGroup zu erstellen. Wenn Sie einen eigenen XAML-Code schreiben oder Transformationen im Code definieren, sollten Sie die gleichen Methoden befolgen, sodass Sie beim Anwenden von Transformationen für RenderTransformOrigin immer RenderTransformOrigin anstelle der transformationsspezifischen Ursprungswerte verwenden. Andernfalls werden die Werte verglichen.

Eine gängige Technik ist das Festlegen von RenderTransformOrigin auf 0.5,0.5, wodurch der Ursprung in der Mitte des Elements platziert wird. Anschließend können Sie ein RotateTransform-Element anwenden, um das Element um die Mitte zu drehen.

Wenn FlowDirection in RightToLeft geändert wird, wird die Bedeutung der X-Koordinate eines RenderTransformOrigin-Elements für ein UIElement geändert. 0 ist der rechte Rand.

Einige der visuellen Effekte, die Sie mit RenderTransform und RenderTransformOrigin erzeugen können, können auch mit Projektion und einer PlaneProjection erzielt werden. Beispielsweise können Sie ein UIElement um seine Mitte drehen, indem Sie PlaneProjection.RotationZ ändern.

Gilt für:

Weitere Informationen