RotateTransform クラス

定義

2 次元の x-y 座標系で、指定した点を中心にオブジェクトを回転します。

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 .../>
継承
Object Platform::Object IInspectable DependencyObject GeneralTransform Transform RotateTransform
属性

変換によって、アプリケーション内のテキストの表示が変更され、装飾効果が作成されます。 次の使用例は、RotateTransform を使用して 90 度回転したテキストを示しています。

この例では、RotateTransform を使用してテキストを回転します。 Angle 値が 90 の場合、要素は時計回りに 90 度回転します。

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

注釈

RotateTransform は、Point CenterXCenterY を中心とする円弧を通じてオブジェクトを回転させる角度によって定義されます。

適用される Angle 値が正の場合、適用される回転は時計回りの方向になります。 負の 角度 の値を使用すると、回転が反時計回りに回転します。 –360 未満または 360 より大きい値の場合、値はラップされ、数学的演算 mod(360) が適用されたかのように扱われます。

回転するには、 CenterXCenterY を既定値 (0,0) のままにします。 既定以外の CenterXCenterY を使用する場合は、インプレース回転せず、代わりに変換の参照フレーム内のポイントを中心に回転することができます。 たとえば、軌道をシミュレートできます。

通常、Transform は、要素のレンダリング方法を変更するために UIElement.RenderTransform プロパティを塗りつぶすために使用されます。 UIElement には UIElement.RenderTransformOrigin プロパティもあります。このプロパティの既定値は (0,0) です。 RenderTransformOrigin は、RotateTransform を含むすべての変換を適用する方法の参照座標フレームを確立します。 RotateTransform の一般的なシナリオは、(アニメーションまたは 1 回限りの変換として) オブジェクトを中心に回転することです。 既定の UIElement.RenderTransformOrigin が (0,0) の場合、オブジェクトは中心を中心に回転せず、境界ボックスの左上隅を中心に回転します。 したがって、オブジェクトを中心に回転させる一般的な方法は、 CenterXCenterY を (0,0) のままにして 、UIElement.RenderTransformOrigin を論理 ポイント (0.5,0.5) に設定することです。 論理ポイント規則を使用して、UIElement.RenderTransformOrigin をオブジェクトの中心点に配置します。つまり、(x,y) が ActualHeight 値と ActualWidth 値のちょうど半分である原点に配置します。

UIElement.RenderTransformOrigin は論理ポイント規則を使用します。 CenterXCenterY はその規則を使用せず、実際のピクセル値を使用します。

オブジェクトのレンダリング位置は Canvas.LeftCanvas.Top を使用してキャンバス上でオフセットできますが、これは変換としてカウントされません。オブジェクトは、Canvas に配置されるときに、独自のローカル (0,0) の原点を保持します。

回転の表示方法に影響を与える可能性のある他のプロパティとリレーションシップがあります。 TransformGroup を使用して複数の変換が適用されている場合、順序は重要です。 変換は、 TransformCollection に表示される順序で適用されます。 特に、変換の 1 つが TranslateTransform の場合は、目的の回転効果を得るために順序を変更する必要があります。

同じオブジェクトに複数の変換を適用するには、次の 3 つの方法があります。

  • TransformGroup を使用して、各変換が適用される順序を指定できます。
  • CompositeTransform を使用して、各変換が共有 Transform オブジェクトのプロパティによって有効になり、変換が固定の既知の順序で適用されます。
  • MatrixTransform を使用して、変換の一般的な分類を 1 つの Transform に結合する方法で 3×3 行列を制御するさまざまなプロパティを設定します。 デザイン ツールを使用して値を設定しない限り、これはおそらく最も高度な手法です。

RotateTransform のアニメーション化

アニメーションを RotateTransform に適用して、時間の経過と同時に要素を回転させることができます。 通常、アニメーションは Angle プロパティにのみ適用し、 CenterXCenterY はアニメーション化しません。 継続的に回転するアニメーションの場合は、通常、From/To/By スタイル アニメーションの To 値のみを使用します。 AngleDouble であるため、 これには DoubleAnimation が含まれます。 連続アニメーションの場合は、DoubleAnimationRepeatBehavior[永遠] に設定します。

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

コンストラクター

RotateTransform()

RotateTransform クラスの新しいインスタンスを初期化します。

プロパティ

Angle

角度 (°) の単位で時計回りの回転の角度を取得または設定します。

AngleProperty

Angle 依存関係プロパティを識別します。

CenterX

この変換の回転中心点の x 座標を取得または設定します。

CenterXProperty

CenterX 依存関係プロパティを識別します。

CenterY

この変換の回転中心点の y 座標を取得または設定します。

CenterYProperty

CenterY 依存関係プロパティを識別します。

Dispatcher

常に Windows アプリ SDK アプリで を返しますnull。 代わりに DispatcherQueue を使用してください。

(継承元 DependencyObject)
DispatcherQueue

このオブジェクトが DispatcherQueue 関連付けられている を取得します。 は DispatcherQueue 、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の にアクセス DependencyObject できる機能を表します。

(継承元 DependencyObject)
Inverse

可能であれば、この GeneralTransform の逆変換を取得します。

(継承元 GeneralTransform)
InverseCore

派生またはカスタムの GeneralTransform関数の戻り値の動作を実装します。

(継承元 GeneralTransform)

メソッド

ClearValue(DependencyProperty)

依存関係プロパティのローカル値をクリアします。

(継承元 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

依存関係プロパティに対して確立された基本値を返します。これは、アニメーションがアクティブでない場合に適用されます。

(継承元 DependencyObject)
GetValue(DependencyProperty)

DependencyObject から依存関係プロパティの現在の有効な値を返します。

(継承元 DependencyObject)
ReadLocalValue(DependencyProperty)

ローカル値が設定されている場合は、依存関係プロパティのローカル値を返します。

(継承元 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

この DependencyObject インスタンスの特定の DependencyProperty に対する変更をリッスンするための通知関数を登録します。

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
TransformBounds(Rect)

指定された境界ボックスを変換し、それをちょうど格納できる大きさの軸平行境界ボックスを返します。

(継承元 GeneralTransform)
TransformBoundsCore(Rect)

派生変換クラスの TransformBounds 動作をオーバーライドする手段を提供します。

(継承元 GeneralTransform)
TransformPoint(Point)

この変換オブジェクトのロジックを使用して指定したポイントを変換し、結果を返します。

(継承元 GeneralTransform)
TryTransform(Point, Point)

指定されたポイントの変換を試み、その変換が成功したかどうかを示す値を返します。

(継承元 GeneralTransform)
TryTransformCore(Point, Point)

派生変換クラスの TryTransform 動作をオーバーライドする手段を提供します。

(継承元 GeneralTransform)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback を呼び出して以前に登録した変更通知を取り消します。

(継承元 DependencyObject)

適用対象

こちらもご覧ください