RotateTransform 類別

定義

在二維 x-y 座標系統中繞著指定點旋轉物件。

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

Windows 需求

裝置系列
Windows 10 (已於 10.0.10240.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)

範例

轉換可以改變應用程式中文字的顯示,以建立裝飾效果。 此範例顯示使用 RotateTransform 旋轉 90 度文字。

此範例會使用 RotateTransform 來旋轉文字。 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 是由 Angle 所定義,該Angle會透過點 CenterX CenterY周圍的弧線旋轉物件。

如果套用 的 Angle 值為正數,則套用的旋轉方向為順時針方向。 使用負數 的 Angle 值是合法的,這會導致旋轉反時針。 對於小於 –360 或大於 360 的值,這些值會包裝並視為套用數學運算 mod(360)

若要就地旋轉,請將 CenterXCenterY 保留為預設 (0,0) 。 如果您不想就地旋轉,而想要在轉換的參照框架中繞著某個點旋轉,您可以使用非預設 CenterXCenterY 。 例如,您可以模擬軌道。

轉換通常用於填滿UIElement.RenderTransform屬性,以變更元素呈現的方式。 UIElement 也有 UIElement.RenderTransformOrigin 屬性,預設為 (0,0) 。 RenderTransformOrigin 會建立參考座標框架,以瞭解套用 RotateTransform 等所有轉換的方式。 RotateTransform 的常見案例是將物件繞著其中心旋轉 (為動畫或一次性轉換) 。 使用預設 UIElement.RenderTransformOrigin (0,0) 物件不會繞著其中心旋轉,它會繞著周框方塊的左上角旋轉。 因此,造成物件繞著中心旋轉的常見方式是讓 CenterX 保持中心CenterY (0,0) ,但將 UIElement.RenderTransformOrigin 設定為邏輯 ,其中值 (0.5,0.5) 。 使用邏輯點慣例,將 UIElement.RenderTransformOrigin 放在物件的中心點,換句話說,位於 (xy) 的原點,完全是 ActualHeightActualWidth 值的一半。

UIElement.RenderTransformOrigin 使用邏輯點慣例; CenterXCenterY 不會使用該慣例,它們會使用實際的圖元值。

物件的轉譯位置可以使用Canvas.LeftCanvas.Top移,但這不算為轉換;當物件位於 Canvas 中時,物件會保留自己的本機 (0,0) 原

還有其他屬性和關聯性會影響旋轉的顯示方式。 如果使用 TransformGroup套用多個轉換,則順序很重要。 轉換會依 其出現在 TransformCollection的順序套用。 特別是如果其中一個轉換是 TranslateTransform,您可能必須改變順序來取得您想要的旋轉效果。

有三種方式可將多個轉換套用至相同的物件:

  • 使用 TransformGroup,您可以在其中指定每個轉換套用的順序。
  • 使用 CompositeTransform,其中每個轉換都是由共用 Transform 物件的屬性啟用,而轉換會以固定的已知順序套用。
  • 使用 MatrixTransform,您可以在其中設定控制 3×3 矩陣的各種屬性,讓您將轉換的一般分類結合成一個 轉換。 除非您使用設計工具來協助設定值,否則這可能是最進階的技術。

建立RotateTransform的動畫

您可以將動畫套用至 RotateTransform,以讓元素隨著時間旋轉。 一般而言,您只會將動畫套用至 Angle 屬性,而且不會讓 CenterXCenterY產生動畫效果。 針對持續旋轉的動畫,您通常會只針對From/To/By樣式動畫使用To值。 AngleDouble ,因此這牽涉到 DoubleAnimation。 針對連續動畫,您將DoubleAnimationRepeatBehavior設定為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();
}

建構函式

RotateTransform()

初始化 RotateTransform 類別的新實例。

屬性

Angle

取得或設定順時針旋轉的角度 (以度為單位)。

AngleProperty

識別 Angle 相依性屬性。

CenterX

取得或設定這個轉換旋轉中心點的 X 座標。

CenterXProperty

識別 CenterX 相依性屬性。

CenterY

取得或設定這個轉換旋轉中心點的 Y 座標。

CenterYProperty

識別 CenterY 相 依性屬性。

Dispatcher

取得與此物件相關聯的 CoreDispatcherCoreDispatcher代表可以存取 UI 執行緒上DependencyObject的功能,即使程式碼是由非 UI 執行緒起始也一樣。

(繼承來源 DependencyObject)
Inverse

如果可能,取得這個 GeneralTransform的反向轉換。

(繼承來源 GeneralTransform)
InverseCore

在衍生或自訂GeneralTransform中實作Inverse傳回值的行為。

(繼承來源 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)

適用於

另請參閱