RotateTransform Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 |
DispatcherQueue |
Obtient le |
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) |