RotateTransform 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 .../>
- 상속
- 특성
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)가ActualHeight 및 ActualWidth 값의 정확히 절반인 원본에 있습니다.
UIElement.RenderTransformOrigin 은 논리 지점 규칙을 사용합니다. CenterX 및 CenterY 는 해당 규칙을 사용하지 않고 실제 픽셀 값을 사용합니다.
Canvas.Left 및 Canvas.Top 사용하여 캔버스에서 개체의 렌더링 위치를 오프셋할 수 있지만 변환으로 계산되지는 않습니다. 개체는 Canvas에 배치될 때 자체 로컬(0,0) 원본을 유지합니다.
회전이 표시되는 방식에 영향을 줄 수 있는 다른 속성과 관계가 있습니다. TransformGroup을 사용하여 여러 변환을 적용하는 경우 순서가 중요합니다. 변환은 TransformCollection에 표시되는 순서대로 적용됩니다. 특히 변환 중 하나가 TranslateTransform인 경우 원하는 회전 효과를 얻으려면 순서를 변경해야 할 수 있습니다.
동일한 개체에 여러 변환을 적용하는 세 가지 방법이 있습니다.
- TransformGroup을 사용하여 각 변환이 적용되는 순서를 지정할 수 있습니다.
- CompositeTransform을 사용하여 각 변환은 공유 Transform 개체의 속성에 의해 사용하도록 설정되고 변환은 알려진 고정 순서로 적용됩니다.
- MatrixTransform을 사용하여 변환의 일반적인 분류를 하나의 변환으로 결합하는 방식으로 3×3 행렬을 제어하는 다양한 속성을 설정합니다. 디자인 도구를 사용하여 값을 설정하지 않는 한 가장 고급 기술일 것입니다.
RotateTransform 애니메이션
RotateTransform에 애니메이션을 적용하여 시간이 지남에 따라 요소가 회전하도록 할 수 있습니다. 일반적으로 Angle 속성에만 애니메이션을 적용하고 CenterX, CenterY에 애니메이션 효과를 주지 않습니다. 연속 회전 애니메이션의 경우 일반적으로 From/To/By 스타일 애니메이션에 To 값만 사용합니다. 각도 는 Double 이므로 DoubleAnimation이 포함됩니다. 연속 애니메이션의 경우 DoubleAnimation의 RepeatBehavior를 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 클래스의 새 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) |