UIElement.RenderTransformOrigin UIElement.RenderTransformOrigin UIElement.RenderTransformOrigin UIElement.RenderTransformOrigin Property

Определение

Получает или задает центральную точку любого возможного преобразования при прорисовке, объявленного RenderTransform относительно границ элемента.Gets or sets the center point of any possible render transform declared by RenderTransform, relative to the bounds of the element. Это свойство зависимостей.This is a dependency property.

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

Значение свойства

Значение, объявляющее преобразование при прорисовке.The value that declares the render transform. Значение по умолчанию — Point с координатами (0,0).The default value is a Point with coordinates (0,0).

Примеры

Следующий пример создает элементы в коде, применяет RenderTransformOrigin, а затем RenderTransformприменяет.The following example builds up elements in code, applies a RenderTransformOrigin, and then applies a 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 значения Structure, в Point котором не представляет абсолютное расположение в системе координат.RenderTransformOrigin has a somewhat nonstandard use of the Point structure value, in that the Point does not represent an absolute location in a coordinate system. Вместо этого значения от 0 до 1 обрабатываются как коэффициент для диапазона текущего элемента в каждой оси x, y.Instead, values between 0 and 1 are interpreted as a factor for the range of the current element in each x,y axis. Например, значение (0,5, 0,5) приведет к центрированию преобразования прорисовки в элементе, или (1, 1) поместит преобразование прорисовки в нижний правый угол элемента.For example, (0.5,0.5) will cause the render transform to be centered on the element, or (1,1) would place the render transform at the bottom right corner of the element. NaNне является допустимым значением.NaN is not an accepted value.

Значения, превышающие 0 и 1, также принимаются, и это приводит к более нестандартным эффектам преобразования.Values beyond 0 and 1 are also accepted, and will result in more unconventional transform effects. Например, если задано значение RenderTransformOrigin (5, 5), а затем RotateTransformприменено, точка вращения будет находиться вне границ самого элемента.For instance, if you set RenderTransformOrigin to be (5,5), and then apply a RotateTransform, the rotation point will be well outside the bounds of the element itself. Преобразование будет вращать элемент вокруг элемента в большом кружке, порожденном снизу справа.The transform will spin your element around in a big circle that originates beyond bottom right. Источник может находиться где-либо внутри родительского элемента и, возможно, находится вне рамки или представления.The origin might be somewhere inside its parent element and could possibly be possibly out of frame or view. Отрицательные значения точек похожи, они выходят за пределы верхней левой границы.Negative point values are similar, these will go beyond the top left bounds.

Преобразования прорисовки не влияют на макет и обычно используются для анимации или применения временного воздействия на элемент.Render transforms do not affect layout, and are typically used to animate or apply a temporary effect to an element.

Использование атрибута XAMLXAML Attribute Usage

<object RenderTransformOrigin="xOrigin, yOrigin"/>  

Использование элемента свойства XAMLXAML Property Element Usage

<object>  
  <object.RenderTransformOrigin>  
    <Point X=" xOrigin " Y=" yOrigin "/>  
  </object.RenderTransformOrigin>  
</object>  

Значения XAMLXAML Values

ксоригинxOrigin
Коэффициент горизонтального источника.The horizontal origin factor. Обычно это значение указывается в диапазоне от 0 до 1.This is typically given as a value between 0 and 1. См. заметки.See Remarks.

йоригинyOrigin
Вертикальный коэффициент источника.The vertical origin factor. Обычно это значение указывается в диапазоне от 0 до 1.This is typically given as a value between 0 and 1. См. заметки.See Remarks.

Сведения о свойстве зависимостейDependency Property Information

Поле идентификатораIdentifier field RenderTransformOriginProperty
Свойства метаданных, для которых задано значениеtrueMetadata properties set to true НетNone

Применяется к

Дополнительно