다음을 통해 공유


RotateTransform 클래스

정의

2차원 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은 PointX, CenterY 지점 주위의 호를 통해 개체를 회전하는 Angle으로 정의됩니다.

적용된 각도 값이 양수이면 적용된 회전이 시계 방향 방향입니다. 음수인 Angle 값을 사용하면 회전이 시계 반대 방향으로 회전됩니다. –360보다 작거나 360보다 큰 값의 경우 값이 래핑되고 수학 연산 mod(360) 이 적용된 것처럼 처리됩니다.

제자리에서 회전하려면 CenterX, CenterY 를 기본값(0,0)으로 둡니다. 기본이 아닌 CenterX, CenterY 를 사용할 수 있습니다. 대신 현재 위치에서 회전하지 않고 대신 변환의 참조 프레임에 있는 지점을 중심으로 회전하려고 할 수 있습니다. 예를 들어 궤도를 시뮬레이션할 수 있습니다.

Transform은 일반적으로 요소 렌더링 방법을 변경하기 위해 UIElement.RenderTransform 속성을 채우는 데 사용됩니다. UIElement 에는 기본값(0,0)인 UIElement.RenderTransformOrigin 속성도 있습니다. RenderTransformOrigin 은 RotateTransform을 포함한 모든 변환이 적용되는 방식에 대한 참조의 좌표 프레임을 설정합니다. RotateTransform의 일반적인 시나리오는 개체를 중심을 중심으로 회전하는 것입니다(애니메이션 또는 일회성 변환으로). (0,0)의 기본 UIElement.RenderTransformOrigin 을 사용하면 개체가 중심을 중심으로 회전하지 않고 경계 상자의 왼쪽 위 모서리를 중심으로 회전합니다. 따라서 개체가 중심을 중심으로 회전하도록 하는 일반적인 방법은 CenterX, CenterY 를 (0,0)로 두고 UIElement.RenderTransformOrigin 을 값이 (0.5,0.5)인 논리적 지점 으로 설정하는 것입니다. 논리 포인트 규칙을 사용하여 UIElement.RenderTransformOrigin을 개체의 중심점에 배치합니다. 즉, (x,y)가ActualHeightActualWidth 값의 정확히 절반인 원본에 있습니다.

UIElement.RenderTransformOrigin 은 논리 지점 규칙을 사용합니다. CenterXCenterY 는 해당 규칙을 사용하지 않고 실제 픽셀 값을 사용합니다.

Canvas.LeftCanvas.Top 사용하여 캔버스에서 개체의 렌더링 위치를 오프셋할 수 있지만 변환으로 계산되지는 않습니다. 개체는 Canvas에 배치될 때 자체 로컬(0,0) 원본을 유지합니다.

회전이 표시되는 방식에 영향을 줄 수 있는 다른 속성과 관계가 있습니다. TransformGroup을 사용하여 여러 변환을 적용하는 경우 순서가 중요합니다. 변환은 TransformCollection에 표시되는 순서대로 적용됩니다. 특히 변환 중 하나가 TranslateTransform인 경우 원하는 회전 효과를 얻으려면 순서를 변경해야 할 수 있습니다.

동일한 개체에 여러 변환을 적용하는 세 가지 방법이 있습니다.

  • TransformGroup을 사용하여 각 변환이 적용되는 순서를 지정할 수 있습니다.
  • CompositeTransform을 사용하여 각 변환은 공유 Transform 개체의 속성에 의해 사용하도록 설정되고 변환은 알려진 고정 순서로 적용됩니다.
  • MatrixTransform을 사용하여 변환의 일반적인 분류를 하나의 변환으로 결합하는 방식으로 3×3 행렬을 제어하는 다양한 속성을 설정합니다. 디자인 도구를 사용하여 값을 설정하지 않는 한 가장 고급 기술일 것입니다.

RotateTransform 애니메이션

RotateTransform에 애니메이션을 적용하여 시간이 지남에 따라 요소가 회전하도록 할 수 있습니다. 일반적으로 Angle 속성에만 애니메이션을 적용하고 CenterX, CenterY에 애니메이션 효과를 주지 않습니다. 연속 회전 애니메이션의 경우 일반적으로 From/To/By 스타일 애니메이션에 To 값만 사용합니다. 각도Double 이므로 DoubleAnimation이 포함됩니다. 연속 애니메이션의 경우 DoubleAnimationRepeatBehaviorForever로 설정합니다.

<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 클래스의 새 instance 초기화합니다.

속성

Angle

시계 방향 회전의 각도를 가져오거나 설정합니다.

AngleProperty

Angle 종속성 속성을 식별합니다.

CenterX

이 변환에 대한 회전 중심점의 x 좌표를 가져오거나 설정합니다.

CenterXProperty

CenterX 종속성 속성을 식별합니다.

CenterY

이 변환에 대한 회전 중심점의 y 좌표를 가져오거나 설정합니다.

CenterYProperty

CenterY 종속성 속성을 식별합니다.

Dispatcher

이 개체가 연결된 CoreDispatcher 를 가져옵니다. CoreDispatcher는 코드가 비 UI 스레드에서 시작된 경우에도 UI 스레드에서 DependencyObject에 액세스할 수 있는 기능을 나타냅니다.

(다음에서 상속됨 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 instance 특정 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)

적용 대상

추가 정보