UIElement.RenderTransformOrigin Właściwość

Definicja

Pobiera lub ustawia punkt środkowy dowolnego możliwego przekształcenia renderowania zadeklarowanego przez RenderTransform , względem granic elementu.Gets or sets the center point of any possible render transform declared by RenderTransform, relative to the bounds of the element. Jest to właściwość zależności.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

Wartość właściwości

Point

Wartość, która deklaruje transformację renderowania.The value that declares the render transform. Wartość domyślna to Point współrzędne ze współrzędnymi (0, 0).The default value is a Point with coordinates (0,0).

Przykłady

Poniższy przykład kompiluje elementy w kodzie, stosuje a RenderTransformOrigin , a następnie stosuje 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

Uwagi

RenderTransformOrigin ma nieco niestandardowe użycie Point wartości struktury, w tym, że nie Point reprezentuje lokalizacji absolutnej w układzie współrzędnych.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. Zamiast tego wartości z zakresu od 0 do 1 są interpretowane jako współczynnik dla zakresu bieżącego elementu w każdej osi 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. Na przykład (0,5, 0,5) spowoduje, że transformacja renderowania zostanie wyśrodkowana w elemencie lub (1, 1) spowoduje przekształcenie przekształcenia w prawym dolnym rogu elementu.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 nie jest zaakceptowaną wartością.NaN is not an accepted value.

Wartości wykraczające poza 0 i 1 są również akceptowane i spowodują bardziej niekonwencjonalne skutki transformacji.Values beyond 0 and 1 are also accepted, and will result in more unconventional transform effects. Na przykład, jeśli ustawisz wartość RenderTransformOrigin (5, 5), a następnie Zastosuj RotateTransform , punkt obrotu będzie dobrze poza granicami samego elementu.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. Przekształcenie spowoduje nawirowanie elementu wokół dużego okręgu, który pochodzi poza prawą dolną.The transform will spin your element around in a big circle that originates beyond bottom right. Źródło może znajdować się w miejscu wewnątrz elementu nadrzędnego i prawdopodobnie może być poza ramką lub widokiem.The origin might be somewhere inside its parent element and could possibly be possibly out of frame or view. Ujemne wartości punktów są podobne, ale wykraczają poza lewe górne granice.Negative point values are similar, these will go beyond the top left bounds.

Przekształcenia renderowania nie wpływają na układ i są zwykle używane do animowania lub zastosowania tymczasowego efektu do elementu.Render transforms do not affect layout, and are typically used to animate or apply a temporary effect to an element.

Użycie atrybutu języka XAMLXAML Attribute Usage

<object RenderTransformOrigin="xOrigin, yOrigin"/>  

Użycie elementu właściwości języka XAMLXAML Property Element Usage

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

Wartości XAMLXAML Values

xOriginxOrigin
Współczynnik początkowy punktu początkowego.The horizontal origin factor. Jest to zazwyczaj wartość z przedziału od 0 do 1.This is typically given as a value between 0 and 1. Zobacz uwagi.See Remarks.

yOriginyOrigin
Współczynnik punktu początkowego.The vertical origin factor. Jest to zazwyczaj wartość z przedziału od 0 do 1.This is typically given as a value between 0 and 1. Zobacz uwagi.See Remarks.

Informacje dotyczące właściwości zależnościDependency Property Information

Pole identyfikatoraIdentifier field RenderTransformOriginProperty
Właściwości metadanych ustawione na trueMetadata properties set to true BrakNone

Dotyczy

Zobacz też