Sdílet prostřednictvím


UIElement.RenderTransformOrigin Vlastnost

Definice

Získá nebo nastaví středový bod jakékoli možné vykreslovací transformace deklarované , RenderTransformvzhledem k hranicím elementu. Toto je vlastnost závislosti.

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

Hodnota vlastnosti

Hodnota, která deklaruje transformaci vykreslení. Výchozí hodnota je se Point souřadnicemi (0,0).

Příklady

Následující příklad sestaví elementy v kódu, použije RenderTransformOrigina pak použije 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

Poznámky

RenderTransformOrigin má poněkud nestandardní použití Point hodnoty struktury v tom, že Point hodnota nepředstavuje absolutní umístění v souřadnicovém systému. Místo toho jsou hodnoty mezi 0 a 1 interpretovány jako faktor pro rozsah aktuálního prvku na každé ose x,y. Například (0.5,0.5) způsobí, že transformace vykreslení bude na středu elementu, nebo (1,1) umístí transformaci vykreslení do pravého dolního rohu elementu. NaN není přijatelná hodnota.

Přijímají se také hodnoty nad 0 a 1, které budou mít za následek nekonvenční efekty transformace. Pokud například nastavíte RenderTransformOrigin hodnotu (5,5) a pak použijete RotateTransformhodnotu , bude bod otáčení dobře mimo hranice samotného prvku. Transformace otáčí váš prvek ve velkém kruhu, který pochází z pravého dolního rohu. Původ může být někde uvnitř nadřazeného prvku a může být mimo rámec nebo zobrazení. Záporné bodové hodnoty jsou podobné, budou za horní levou hranici.

Transformace vykreslení nemají vliv na rozložení a obvykle se používají k animaci nebo použití dočasného efektu prvku.

Použití atributu XAML

<object RenderTransformOrigin="xOrigin, yOrigin"/>  

Použití elementu vlastnosti XAML

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

Hodnoty XAML

xOrigin
Faktor vodorovného původu. Obvykle se udává jako hodnota mezi 0 a 1. Viz Poznámky.

yOrigin
Faktor svislého původu. Obvykle se udává jako hodnota mezi 0 a 1. Viz Poznámky.

Informace o vlastnosti závislosti

Pole Identifikátor RenderTransformOriginProperty
Vlastnosti metadat nastavené na true Žádné

Platí pro

Viz také