Partager via


RotateTransform Classe

Définition

Fait pivoter un objet autour d’un point spécifié dans un système de coordonnées x-y à deux dimensions.

public ref class RotateTransform sealed : Transform
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 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.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RotateTransform : Transform
Public NotInheritable Class RotateTransform
Inherits Transform
<RotateTransform .../>
Héritage
Object Platform::Object IInspectable DependencyObject GeneralTransform Transform RotateTransform
Attributs

Exemples

Les transformations peuvent modifier l’affichage du texte dans votre application pour créer un effet décoratif. Cet exemple montre le texte pivoté de 90 degrés à l’aide d’un RotateTransform.

Cet exemple utilise un RotateTransform pour faire pivoter le texte. Une valeur Angle de 90 fait pivoter l’élément de 90 degrés dans le sens des aiguilles d’une montre.

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

Remarques

Un RotateTransform est défini par un angle qui fait pivoter un objet à travers un arc autour du point CenterX, CenterY.

Si la valeur Angle appliquée est positive, la rotation appliquée est dans le sens des aiguilles d’une montre. Il est légal d’utiliser une valeur Angle qui est négative, ce qui entraîne la rotation dans le sens inverse des aiguilles d’une montre. Pour les valeurs inférieures à –360 ou supérieures à 360, les valeurs sont encapsulées et traitées comme si l’opération mod(360) mathématique avait été appliquée.

Pour effectuer une rotation sur place, laissez CenterX, CenterY comme valeur par défaut (0,0). Vous pouvez utiliser un CenterX non défini par défaut, CenterY si vous ne souhaitez pas effectuer une rotation sur place et que vous souhaitez plutôt faire pivoter autour d’un point dans le cadre de référence de la transformation. Par exemple, vous pouvez simuler une orbite.

Une transformation est généralement utilisée pour remplir la propriété UIElement.RenderTransform , afin de modifier le rendu d’un élément. UIElement a également la propriété UIElement.RenderTransformOrigin , qui est définie par défaut sur (0,0). RenderTransformOrigin établit le cadre de coordonnées de référence pour la façon dont toutes les transformations, y compris rotateTransform, s’appliqueront. Un scénario courant pour RotateTransform consiste à faire pivoter un objet en place autour de son centre (sous la forme d’une animation ou d’une transformation unique). Avec la valeur par défaut UIElement.RenderTransformOrigin de (0,0), un objet ne pivote pas autour de son centre, mais autour du coin supérieur gauche de son cadre englobant. Par conséquent, la façon courante de faire pivoter un objet autour de son centre consiste à laisser CenterX, CenterY comme (0,0) mais à définir UIElement.RenderTransformOrigin sur un point logique où les valeurs sont (0.5,0.5). En utilisant la convention de point logique, qui place UIElement.RenderTransformOrigin au point central de l’objet, c’est-à-dire à une origine où (x,y) sont exactement la moitié des valeurs ActualHeight et ActualWidth.

UIElement.RenderTransformOrigin utilise la convention de point logique ; CenterX et CenterY n’utilisent pas cette convention, ils utilisent des valeurs de pixels réelles.

La position de rendu d’un objet peut être décalée sur un canevas à l’aide de Canvas.Left et Canvas.Top, mais cela ne compte pas comme une transformation ; L’objet conserve sa propre origine locale (0,0) lorsqu’il est positionné dans un canvas.

Il existe d’autres propriétés et relations qui peuvent affecter la façon dont la rotation apparaît. Si plusieurs transformations sont appliquées à l’aide d’un TransformGroup, l’ordre est important. Les transformations sont appliquées dans l’ordre dans lequel elles apparaissent dans transformCollection. En particulier si l’une des transformations est un TranslateTransform, vous devrez peut-être modifier l’ordre pour obtenir l’effet de rotation souhaité.

Il existe trois façons d’appliquer plusieurs transformations au même objet :

  • À l’aide d’un TransformGroup, où vous pouvez spécifier l’ordre dans lequel chaque transformation s’applique.
  • Utilisation d’un CompositeTransform, où chacune des transformations est activée par les propriétés d’un objet Transform partagé et où les transformations sont appliquées dans un ordre fixe et connu.
  • À l’aide d’un MatrixTransform, où vous définissez les différentes propriétés qui contrôlent la matrice 3×3 de manière à combiner les classifications classiques des transformations en une seule transformation. Sauf si vous utilisez un outil de conception pour vous aider à définir les valeurs, il s’agit probablement de la technique la plus avancée.

Animation d’un RotateTransform

Vous pouvez appliquer une animation à un RotateTransform pour faire pivoter un élément au fil du temps. En règle générale, vous appliquez uniquement l’animation à la propriété Angle et n’animez pas CenterX, CenterY. Pour une animation en rotation continue, vous utilisez généralement uniquement la valeur To pour une animation de style From/To/By . Angle étant un Double , cela implique une DoubleAnimation. Pour une animation continue, vous devez définir RepeatBehavior de doubleanimation sur Forever.

<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();
}

Constructeurs

RotateTransform()

Initialise une nouvelle instance de la classe RotateTransform.

Propriétés

Angle

Obtient ou définit l’angle, en degrés, de rotation dans le sens des aiguilles d’une montre.

AngleProperty

Identifie la propriété de dépendance Angle .

CenterX

Obtient ou définit la coordonnée x du point central de rotation pour cette transformation.

CenterXProperty

Identifie la propriété de dépendance CenterX .

CenterY

Obtient ou définit la coordonnée y du point central de rotation pour cette transformation.

CenterYProperty

Identifie la propriété de dépendance CenterY .

Dispatcher

Retourne null toujours dans une application SDK d'application Windows. Utilisez DispatcherQueue à la place.

(Hérité de DependencyObject)
DispatcherQueue

Obtient le DispatcherQueue auquel cet objet est associé. représente DispatcherQueue une fonctionnalité qui peut accéder au DependencyObject sur le thread d’interface utilisateur, même si le code est initié par un thread autre que l’interface utilisateur.

(Hérité de DependencyObject)
Inverse

Obtient la transformation inverse de ce GeneralTransform, si possible.

(Hérité de GeneralTransform)
InverseCore

Implémente le comportement de la valeur de retour inverse dans un GeneralTransform dérivé ou personnalisé.

(Hérité de GeneralTransform)

Méthodes

ClearValue(DependencyProperty)

Efface la valeur locale d’une propriété de dépendance.

(Hérité de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retourne toute valeur de base établie pour une propriété de dépendance, qui s’appliquerait dans les cas où une animation n’est pas active.

(Hérité de DependencyObject)
GetValue(DependencyProperty)

Retourne la valeur effective actuelle d’une propriété de dépendance à partir d’un DependencyObject.

(Hérité de DependencyObject)
ReadLocalValue(DependencyProperty)

Retourne la valeur locale d’une propriété de dépendance, si une valeur locale est définie.

(Hérité de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Inscrit une fonction de notification pour écouter les modifications apportées à un DependencyProperty spécifique sur ce instance DependencyObject.

(Hérité de DependencyObject)
SetValue(DependencyProperty, Object)

Définit la valeur locale d’une propriété de dépendance sur un DependencyObject.

(Hérité de DependencyObject)
TransformBounds(Rect)

Transforme le cadre englobant spécifié et retourne un cadre englobant aligné sur l'axe qui est exactement assez grand pour le contenir.

(Hérité de GeneralTransform)
TransformBoundsCore(Rect)

Fournit les moyens de remplacer le comportement TransformBounds dans une classe de transformation dérivée.

(Hérité de GeneralTransform)
TransformPoint(Point)

Utilise la logique de cet objet de transformation pour transformer le point spécifié et retourne le résultat.

(Hérité de GeneralTransform)
TryTransform(Point, Point)

Essaie de transformer le point spécifié et retourne une valeur qui indique si la transformation a réussi.

(Hérité de GeneralTransform)
TryTransformCore(Point, Point)

Fournit les moyens de remplacer le comportement TryTransform dans une classe de transformation dérivée.

(Hérité de GeneralTransform)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annule une notification de modification précédemment inscrite en appelant RegisterPropertyChangedCallback.

(Hérité de DependencyObject)

S’applique à

Voir aussi