Teilen über


RotateTransform Klasse

Definition

Dreht ein Objekt um einen angegebenen Punkt in einem zweidimensionalen x-y-Koordinatensystem.

public ref class RotateTransform sealed : Transform
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class RotateTransform final : Transform
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class RotateTransform final : Transform
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RotateTransform : Transform
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class RotateTransform : Transform
Public NotInheritable Class RotateTransform
Inherits Transform
<RotateTransform .../>
Vererbung
Object Platform::Object IInspectable DependencyObject GeneralTransform Transform RotateTransform
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

Transformationen können die Anzeige von Text in Ihrer Anwendung ändern, um einen dekorativen Effekt zu erzeugen. In diesem Beispiel wird Text mithilfe einer RotateTransform um 90 Grad gedreht.

In diesem Beispiel wird eine RotateTransform verwendet, um Text zu rotieren. Ein Winkelwert von 90 rotiert das Element um 90 Grad im Uhrzeigersinn.

<!-- Rotate the text 90 degrees using a RotateTransform. -->
<TextBlock Text="Rotated Text" FontSize="32" Foreground="Teal">
  <TextBlock.RenderTransform>
    <RotateTransform Angle="90" />
  </TextBlock.RenderTransform>
</TextBlock>

Hinweise

Eine RotateTransform wird durch einen Winkel definiert, der ein Objekt durch einen Bogen um den Punkt CenterX( CenterY) dreht.

Wenn der angewendete Winkelwert positiv ist, erfolgt die angewendete Drehung im Uhrzeigersinn. Es ist zulässig, einen negativen Winkelwert zu verwenden, wodurch die Drehung gegen den Uhrzeigersinn erfolgt. Bei Werten kleiner als –360 oder größer als 360 werden die Werte umschließen und so behandelt, als ob der mathematische Vorgang mod(360) angewendet wurde.

Um sich zu drehen, behalten Sie CenterX, CenterY als Standard (0,0) bei. Sie können ein nicht standardmäßiges CenterX, CenterY , verwenden, wenn Sie sich nicht an Ort und Stelle drehen möchten und stattdessen um einen Punkt im Referenzrahmen der Transformation rotieren möchten. Sie können beispielsweise eine Umlaufbahn simulieren.

Eine Transformation wird in der Regel verwendet, um die UIElement.RenderTransform-Eigenschaft zu füllen, um zu ändern, wie ein Element gerendert wird. UIElement verfügt außerdem über die UIElement.RenderTransformOrigin-Eigenschaft , die standardmäßig auf (0,0) festgelegt ist. RenderTransformOrigin legt den Koordinatenrahmen für die Anwendung aller Transformationen einschließlich RotateTransform fest. Ein gängiges Szenario für RotateTransform besteht darin, ein Objekt an ortsbezogener Stelle um sein Zentrum zu drehen (entweder als Animation oder als einmalige Transformation). Bei der Standardeinstellung UIElement.RenderTransformOrigin von (0,0) dreht sich ein Objekt nicht um seine Mitte, es dreht sich um die obere linke Ecke des umgebenden Felds. Daher besteht die gängige Methode zum Rotieren eines Objekts um seine Mitte darin, CenterY als (0,0) zu belassen, aber UIElement.RenderTransformOrigin auf einen logischen Punkt festzulegen, an dem sich die Werte befinden (0.5,0.5). Mithilfe der Logikpunktkonvention wird uiElement.RenderTransformOrigin am Mittelpunkt des Objekts platziert, d. h. an einem Ursprung, bei dem (x,y) genau die Hälfte der ActualHeight- und ActualWidth-Werte sind.

UIElement.RenderTransformOrigin verwendet die Logikpunktkonvention; CenterX und CenterY verwenden diese Konvention nicht, sie verwenden tatsächliche Pixelwerte.

Die Renderingposition für ein Objekt kann mit Canvas.Left und Canvas.Top auf einem Canvas-Objekt offsett werden, dies gilt jedoch nicht als Transformation. das Objekt behält seinen eigenen lokalen Ursprung (0,0), wenn es in einem Canvas-Objekt positioniert ist.

Es gibt andere Eigenschaften und Beziehungen, die sich auf die Darstellung der Drehung auswirken können. Wenn mehrere Transformationen mithilfe einer TransformGroup angewendet werden, ist die Reihenfolge wichtig. Die Transformationen werden in der Reihenfolge angewendet, in der sie in der TransformCollection angezeigt werden. Insbesondere wenn eine der Transformationen eine TranslateTransform ist, müssen Sie möglicherweise die Reihenfolge ändern, um den gewünschten Rotationseffekt zu erhalten.

Es gibt drei Möglichkeiten, mehrere Transformationen auf dasselbe Objekt anzuwenden:

  • Verwenden sie eine TransformGroup, in der Sie die Reihenfolge angeben können, in der jede Transformation angewendet wird.
  • Verwenden eines CompositeTransform-Objekts, bei dem jede der Transformationen durch Eigenschaften eines freigegebenen Transformationsobjekts aktiviert wird und die Transformationen in einer festen, bekannten Reihenfolge angewendet werden.
  • Mit matrixTransform legen Sie die verschiedenen Eigenschaften fest, die die 3×3-Matrix so steuern, dass Sie die typischen Klassifizierungen von Transformationen zu einer Transformation kombinieren. Es sei denn, Sie verwenden ein Designtool, um die Werte festzulegen, ist dies wahrscheinlich die fortschrittlichste Technik.

Animieren einer RotateTransform

Sie können eine Animation auf eine RotateTransform anwenden, um ein Element im Laufe der Zeit zu rotieren. In der Regel wenden Sie die Animation nur auf die Angle-Eigenschaft an und animieren CenterX, CenterY nicht. Für eine Animation, die sich kontinuierlich dreht, verwenden Sie in der Regel nur den Wert An für eine From/To/By-Formatanimation . Winkel ist ein Double , sodass dies eine DoubleAnimation beinhaltet. Für eine fortlaufende Animation würden Sie repeatBehavior der DoubleAnimation auf Forever festlegen.

<Page.Resources>
  <Storyboard x:Name="spinrect">
     <DoubleAnimation To="360" RepeatBehavior="Forever" 
         Storyboard.TargetName="spinme"
         Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" />
  </Storyboard>
</Page.Resources>
<StackPanel>
  <Rectangle Name="spinme" Width="50" Height="50" Fill="Red" RenderTransformOrigin=".5,.5"
      PointerPressed="spinme_PointerPressed">
    <Rectangle.RenderTransform>
      <RotateTransform/>
    </Rectangle.RenderTransform>
  </Rectangle>
</StackPanel>
private void spinme_PointerPressed(object sender, PointerRoutedEventArgs e)
{
    spinrect.Begin();
}

Konstruktoren

RotateTransform()

Initialisiert eine neue instance der RotateTransform-Klasse.

Eigenschaften

Angle

Ruft in Grad den Winkel einer Drehung im Uhrzeigersinn ab oder legt den Winkel fest.

AngleProperty

Gibt die Angle-Abhängigkeitseigenschaft an.

CenterX

Ruft die x-Koordinate des Drehmittelpunkts für diese Transformation ab oder legt diese fest.

CenterXProperty

Gibt die CenterX-Abhängigkeitseigenschaft an.

CenterY

Ruft die y-Koordinate des Drehmittelpunkts für diese Transformation ab oder legt diese fest.

CenterYProperty

Gibt die CenterY-Abhängigkeitseigenschaft an.

Dispatcher

Ruft den CoreDispatcher ab, dem dieses Objekt zugeordnet ist. CoreDispatcher stellt eine Funktion dar, die auf das DependencyObject im UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird.

(Geerbt von DependencyObject)
Inverse

Ruft nach Möglichkeit die inverse Transformation dieser GeneralTransform ab.

(Geerbt von GeneralTransform)
InverseCore

Implementiert das Verhalten für den Rückgabewert von Inverse in einem abgeleiteten oder benutzerdefinierten GeneralTransform.

(Geerbt von GeneralTransform)

Methoden

ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Abhängigkeitseigenschaft.

(Geerbt von DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft festgelegt wurde, was in Fällen gilt, in denen eine Animation nicht aktiv ist.

(Geerbt von DependencyObject)
GetValue(DependencyProperty)

Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück.

(Geerbt von DependencyObject)
ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt ist.

(Geerbt von DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance.

(Geerbt von DependencyObject)
SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest.

(Geerbt von DependencyObject)
TransformBounds(Rect)

Transformiert das angegebene umgebende Feld und gibt ein an einer Achse ausgerichtetes umgebendes Feld zurück, dessen Größe genau für das Rechteck ausreicht.

(Geerbt von GeneralTransform)
TransformBoundsCore(Rect)

Stellt die Möglichkeit bereit, das TransformBounds-Verhalten in einer abgeleiteten Transformationsklasse zu überschreiben.

(Geerbt von GeneralTransform)
TransformPoint(Point)

Verwendet die Logik dieses Transformationsobjekts, um den angegebenen Punkt zu transformieren, und gibt das Ergebnis zurück.

(Geerbt von GeneralTransform)
TryTransform(Point, Point)

Versucht, den angegebenen Punkt zu transformieren, und gibt einen Wert zurück, der angibt, ob die Transformation erfolgreich durchgeführt wurde.

(Geerbt von GeneralTransform)
TryTransformCore(Point, Point)

Stellt die Möglichkeit bereit, das TryTransform-Verhalten in einer abgeleiteten Transformationsklasse zu überschreiben.

(Geerbt von GeneralTransform)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Bricht eine Änderungsbenachrichtigung ab, die zuvor registriert wurde, indem RegisterPropertyChangedCallback aufgerufen wurde.

(Geerbt von DependencyObject)

Gilt für:

Weitere Informationen