UIElement.RenderTransformOrigin 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
요소의 경계에 따라 RenderTransform에서 선언된 모든 사용 가능한 렌더링 변형의 중심점을 가져오거나 설정합니다. 이 속성은 종속성 속성입니다.
public:
property System::Windows::Point RenderTransformOrigin { System::Windows::Point get(); void set(System::Windows::Point value); };
public System.Windows.Point RenderTransformOrigin { get; set; }
member this.RenderTransformOrigin : System.Windows.Point with get, set
Public Property RenderTransformOrigin As Point
속성 값
렌더링 변형을 선언하는 값입니다. 기본값은 좌표가 (0,0)인 Point입니다.
예제
다음 예제에서는 코드에서 요소를 빌드하고, 를 적용한 RenderTransformOrigin다음, 를 RenderTransform적용합니다.
public RotateAboutCenterExample()
{
this.WindowTitle = "Rotate About Center Example";
NameScope.SetNameScope(this, new NameScope());
StackPanel myStackPanel = new StackPanel();
myStackPanel.Margin = new Thickness(50);
Button myButton = new Button();
myButton.Name = "myRenderTransformButton";
this.RegisterName(myButton.Name,myButton);
myButton.RenderTransformOrigin = new Point(0.5,0.5);
myButton.HorizontalAlignment = HorizontalAlignment.Left;
myButton.Content = "Hello World";
RotateTransform myRotateTransform = new RotateTransform(0);
myButton.RenderTransform = myRotateTransform;
this.RegisterName("MyAnimatedTransform",myRotateTransform);
myStackPanel.Children.Add(myButton);
//
// Creates an animation that accelerates through 40% of its duration and
// decelerates through the 60% of its duration.
//
DoubleAnimation myRotateAboutCenterAnimation = new DoubleAnimation();
Storyboard.SetTargetName(myRotateAboutCenterAnimation,"MyAnimatedTransform");
Storyboard.SetTargetProperty(myRotateAboutCenterAnimation,new PropertyPath(RotateTransform.AngleProperty));
myRotateAboutCenterAnimation.From = 0.0;
myRotateAboutCenterAnimation.To = 360;
myRotateAboutCenterAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1000));
// Create a Storyboard to contain the animations and
// add the animations to the Storyboard.
Storyboard myStoryboard = new Storyboard();
myStoryboard.Children.Add(myRotateAboutCenterAnimation);
// Create an EventTrigger and a BeginStoryboard action to
// start the storyboard.
EventTrigger myEventTrigger = new EventTrigger();
myEventTrigger.RoutedEvent = Button.ClickEvent;
myEventTrigger.SourceName = myButton.Name;
BeginStoryboard myBeginStoryboard = new BeginStoryboard();
myBeginStoryboard.Storyboard = myStoryboard;
myEventTrigger.Actions.Add(myBeginStoryboard);
myStackPanel.Triggers.Add(myEventTrigger);
this.Content = myStackPanel;
}
Public Sub New()
Me.WindowTitle = "Rotate About Center Example"
NameScope.SetNameScope(Me, New NameScope())
Dim myStackPanel As New StackPanel()
myStackPanel.Margin = New Thickness(50)
Dim myButton As New Button()
myButton.Name = "myRenderTransformButton"
Me.RegisterName(myButton.Name,myButton)
myButton.RenderTransformOrigin = New Point(0.5,0.5)
myButton.HorizontalAlignment = HorizontalAlignment.Left
myButton.Content = "Hello World"
Dim myRotateTransform As New RotateTransform(0)
myButton.RenderTransform = myRotateTransform
Me.RegisterName("MyAnimatedTransform",myRotateTransform)
myStackPanel.Children.Add(myButton)
'
' Creates an animation that accelerates through 40% of its duration and
' decelerates through the 60% of its duration.
'
Dim myRotateAboutCenterAnimation As New DoubleAnimation()
Storyboard.SetTargetName(myRotateAboutCenterAnimation,"MyAnimatedTransform")
Storyboard.SetTargetProperty(myRotateAboutCenterAnimation,New PropertyPath(RotateTransform.AngleProperty))
myRotateAboutCenterAnimation.From = 0.0
myRotateAboutCenterAnimation.To = 360
myRotateAboutCenterAnimation.Duration = New Duration(TimeSpan.FromMilliseconds(1000))
' Create a Storyboard to contain the animations and
' add the animations to the Storyboard.
Dim myStoryboard As New Storyboard()
myStoryboard.Children.Add(myRotateAboutCenterAnimation)
' Create an EventTrigger and a BeginStoryboard action to
' start the storyboard.
Dim myEventTrigger As New EventTrigger()
myEventTrigger.RoutedEvent = Button.ClickEvent
myEventTrigger.SourceName = myButton.Name
Dim myBeginStoryboard As New BeginStoryboard()
myBeginStoryboard.Storyboard = myStoryboard
myEventTrigger.Actions.Add(myBeginStoryboard)
myStackPanel.Triggers.Add(myEventTrigger)
Me.Content = myStackPanel
End Sub
설명
RenderTransformOrigin 는 좌표계의 Point 절대 위치를 나타내지 않는다는 측면에서 Point 구조체 값을 다소 비표준으로 사용합니다. 대신 0에서 1 사이의 값은 각 x,y 축의 현재 요소 범위에 대한 요소로 해석됩니다. 예를 들어 (0.5,0.5)는 렌더링 변환을 요소의 가운데에 배치하거나(1,1) 요소의 오른쪽 아래 모서리에 렌더링 변환을 배치합니다. NaN 는 허용되는 값이 아닙니다.
0과 1을 초과하는 값도 허용되며 더 틀에 얽매이지 않는 변환 효과가 발생합니다. instance 경우 를 (5,5)로 설정한 RenderTransformOrigin 다음 를 적용RotateTransform하면 회전 지점이 요소 자체의 범위를 벗어나게 됩니다. 변환은 오른쪽 아래를 넘어 시작하는 큰 원에서 요소를 회전합니다. 원점은 부모 요소 내 어딘가에 있을 수 있으며 프레임이나 보기에서 벗어날 수 있습니다. 음수 점 값은 비슷하며 왼쪽 위 범위를 초과합니다.
렌더링 변환은 레이아웃에 영향을 미치지 않으며 일반적으로 요소에 임시 효과를 적용하거나 애니메이션 효과를 적용하는 데 사용됩니다.
XAML 특성 사용
<object RenderTransformOrigin="xOrigin, yOrigin"/>
XAML 속성 요소 사용
<object>
<object.RenderTransformOrigin>
<Point X=" xOrigin " Y=" yOrigin "/>
</object.RenderTransformOrigin>
</object>
XAML 값
xOrigin
가로 원점 계수입니다. 일반적으로 0에서 1 사이의 값으로 제공됩니다. 설명 부분을 참조하세요.
yOrigin
세로 원점 계수입니다. 일반적으로 0에서 1 사이의 값으로 제공됩니다. 설명 부분을 참조하세요.
종속성 속성 정보
식별자 필드 | RenderTransformOriginProperty |
메타 데이터 속성 설정 true |
없음 |
적용 대상
추가 정보
.NET