UIElement.RenderTransformOrigin Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen des Mittelpunkts einer möglichen Rendertransformation, die von RenderTransform, relativ zu den Grenzen des Elements deklariert wird. Hierbei handelt es sich um eine Abhängigkeitseigenschaft.
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. Der Standardwert ist eine Point mit Koordinaten (0,0).
Beispiele
Das folgende Beispiel erstellt Elemente im Code, wendet ein RenderTransformOrigin, und wendet dann eine 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 weist eine etwas nicht standardmäßige Verwendung des Point Strukturwerts auf, da dies Point keine absolute Position in einem Koordinatensystem darstellt. Stattdessen werden Werte zwischen 0 und 1 als Faktor für den Bereich des aktuellen Elements auf jeder X-Y-Achse interpretiert. (0.5,0.5) bewirkt beispielsweise, dass die Rendertransformation auf dem Element zentriert wird, oder (1,1) platziert die Rendertransformation in der unteren rechten Ecke des Elements. NaN ist kein akzeptierter Wert.
Werte jenseits von 0 und 1 werden ebenfalls akzeptiert und führen zu unkonventionelleren Transformationseffekten. Wenn Sie z. B. den Wert (5,5) festlegen RenderTransformOrigin und dann einen RotateTransformanwenden, befindet sich der Drehungspunkt gut außerhalb der Grenzen des Elements selbst. Die Transformation dreht sich um Ihr Element in einem großen Kreis, der über die untere rechte Ecke hinausgeht. Der Ursprung befindet sich möglicherweise in seinem übergeordneten Element und kann möglicherweise außerhalb des Frames oder der Ansicht sein. Negative Punktwerte sind ähnlich, diese gehen über die oberen linken Grenzen hinaus.
Rendertransformationen wirken sich nicht auf das Layout aus und werden in der Regel verwendet, um einen temporären Effekt auf ein Element zu animieren oder anzuwenden.
Verwendung von XAML-Attributen
<object RenderTransformOrigin="xOrigin, yOrigin"/>
Verwendung von XAML-Eigenschaftenelementen
<object>
<object.RenderTransformOrigin>
<Point X=" xOrigin " Y=" yOrigin "/>
</object.RenderTransformOrigin>
</object>
XAML-Werte
xOrigin Der horizontale Ursprungsfaktor. Dies wird in der Regel als Wert zwischen 0 und 1 angegeben. Siehe Anmerkungen.
yOrigin Der vertikale Ursprungsfaktor. Dies wird in der Regel als Wert zwischen 0 und 1 angegeben. Siehe Anmerkungen.
Informationen zur Abhängigkeitseigenschaft
| Element | Wert |
|---|---|
| Bezeichnerfeld | RenderTransformOriginProperty |
Auf Metadateneigenschaften festgelegt true |
Nichts |