Partage via


RotateTransform Classe

Définition

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

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 .../>
Héritage
Object Platform::Object IInspectable DependencyObject GeneralTransform Transform RotateTransform
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Les transformations peuvent modifier l’affichage du texte dans votre application pour créer un effet décoratif. Cet exemple montre une rotation de texte 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 s’encapsulent et sont 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, CenterY si vous ne souhaitez pas effectuer une rotation en place et effectuer une rotation 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 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’appliqueront. Un scénario courant pour RotateTransform consiste à faire pivoter un objet en place autour de son centre (sous forme d’animation ou de transformation ponctuelle). Avec uiElement.RenderTransformOrigin par défaut de (0,0), un objet ne pivote pas autour de son centre, il pivote 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, cela place UIElement.RenderTransformOrigin au centre 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 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 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. Surtout 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 d’application de chaque transformation.
  • 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 provoquer la rotation d’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 le RepeatBehavior du 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

Obtient le CoreDispatcher auquel cet objet est associé. CoreDispatcher représente une installation qui peut accéder à 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’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 objet 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