Langage

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’une rotationTransforme.

Cet exemple utilise un RotateTransform pour faire pivoter du 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 négative, ce qui entraîne la rotation dans le sens inverse. Pour les valeurs inférieures à –360 ou supérieures à 360, les valeurs s’encapsulent et sont traitées comme si l’opération mod(360) mathématique a été appliquée.

Pour faire pivoter en place, laissez CenterX, CenterY comme valeur par défaut (0,0). Vous pouvez utiliser un CenterX nondefault, CenterY si vous ne souhaitez pas faire pivoter en 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 pour modifier le rendu d’un élément. UIElement a également la propriété UIElement.RenderTransformOrigin , qui a la valeur par défaut (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’appliquent. Un scénario courant pour RotateTransform consiste à faire pivoter un objet en place autour de son centre (en tant qu’animation ou en tant que transformation ponctuelle). Avec l’UIElement.RenderTransformOrigin par défaut de (0,0) qu’un objet ne pivote pas autour de son centre, il fait pivoter 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 comme point logique où les valeurs sont (0,5,0.5). À l’aide de la convention de point logique, qui place l’UIElement.RenderTransformOrigin au point central de l’objet, autrement dit à 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 pixel réelles.

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

Il existe d’autres propriétés et relations qui peuvent affecter la façon dont la rotation s’affiche. S’il existe plusieurs transformations appliquées à l’aide d’un TransformGroup, l’ordre importe. 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.
  • À l’aide d’un CompositeTransform, où chacune des transformations est activée par les propriétés d’un objet Transform partagé et les transformations sont appliquées dans un ordre fixe et connu.
  • À l’aide d’une matrice MatrixTransform, où vous définissez les différentes propriétés qui contrôlent la matrice 3×3 de telle façon que vous combinez 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’une rotationTransform

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 simplement la valeur To pour une animation de style From/To/By . Angle est un Double , ce qui implique une DoubleAnimation. Pour une animation continue, vous devez définir RepeatBehavior de l’animation 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

Nom Description
RotateTransform()

Initialise une nouvelle instance de la classe RotateTransform .

Propriétés

Nom Description
Angle

Obtient ou définit l’angle, en degrés, de rotation au niveau 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 du Kit de développement logiciel (SDK) d’application Windows. Utilisez DispatcherQueue à la place.

(Hérité de DependencyObject)
DispatcherQueue

Obtient le DispatcherQueue résultat auquel cet objet est associé. Représente DispatcherQueue une installation qui peut accéder au DependencyObject thread d’interface utilisateur même si le code est initié par un thread non-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 pour la valeur de retour inverse dans un GeneralTransform dérivé ou personnalisé.

(Hérité de GeneralTransform)

Méthodes

Nom Description
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’applique 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 à une dependencyProperty spécifique sur cette 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 suffisamment 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)

Tente 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 qui a été précédemment inscrite en appelant RegisterPropertyChangedCallback.

(Hérité de DependencyObject)

S’applique à

Voir aussi