Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

UIElement.RenderTransformOrigin - свойство

Возвращает или задает центральную точку любого возможного преобразования визуализации, объявленного свойством RenderTransform, относительно границ элемента. Это свойство зависимостей.

Пространство имен:  System.Windows
Сборка:  PresentationCore (в PresentationCore.dll)
XMLNS для XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public Point RenderTransformOrigin { get; set; }
<object>
  <object.RenderTransformOrigin>
    <Point X="xOrigin" Y="yOrigin"/>
  </object.RenderTransformOrigin>
</object>
<object RenderTransformOrigin="xOrigin, yOrigin"/>

Значения XAML

xOrigin

Горизонтальный коэффициент источника. Обычно задается в виде значения между 0 и 1. См. примечания.

yOrigin

Вертикальный коэффициент источника. Обычно задается в виде значения между 0 и 1. См. примечания.

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

Тип: System.Windows.Point
Значение, объявляющее преобразование визуализации. Значение по умолчанию — Point с координатами (0,0).

Поле идентификатора

RenderTransformOriginProperty

Свойства метаданных, которым присвоено значение true

NONE

Свойство RenderTransformOrigin использует значение структуры Point несколько нестандартным образом, так как Point не представляет абсолютное положение в системе координат. Вместо этого значения между 0 и 1 интерпретируются как коэффициент для диапазона текущего элемента по каждой из осей X и Y. Например, значение (0.5,0.5) вызовет центрирование преобразования прорисовки по элементу, а (1,1) поместит преобразование прорисовки в нижний правый угол элемента. NaN не является приемлемым значением.

Значения за пределами диапазона от 0 до 1 также принимаются и приводят к более нестандартным эффектам преобразования. Например, если задать для свойства RenderTransformOrigin значение (5,5), а затем применить RotateTransform, точка вращения будет находиться далеко за пределами самого элемента. Преобразование будет вращать элемент по большому кругу, центр которого расположен далеко внизу и справа. Он может располагаться где-либо внутри родительского элемента или даже за пределами фрейма или видимой области. Отрицательные значения точек работают подобным образом, выходя за верхние и левые границы.

Преобразования визуализации не влияют на структуру и обычно используются для анимирования или применения к элементу временного эффекта.

Следующий пример выстраивает элементы в коде, применяет 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;
}


.NET Framework

Поддерживается в версиях: 4.5, 4, 3.5, 3.0

.NET Framework (клиентский профиль)

Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)

Среда .NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

Добавления сообщества

Показ:
© 2014 Microsoft