UIElement.RenderTransformOrigin Właściwość

Definicja

Pobiera lub ustawia punkt środkowy dowolnej możliwej transformacji renderowania zadeklarowanej przez element RenderTransformw stosunku do granic elementu. Jest to właściwość zależności.

C#
public System.Windows.Point RenderTransformOrigin { get; set; }

Wartość właściwości

Wartość, która deklaruje przekształcenie renderowania. Wartość domyślna jest wartością ze współrzędnymi Point (0,0).

Przykłady

Poniższy przykład tworzy elementy w kodzie, stosuje element RenderTransformOrigin, a następnie stosuje element RenderTransform.

C#
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;
}

Uwagi

RenderTransformOrigin ma nieco niestandardowe użycie Point wartości struktury, w tym, że Point nie reprezentuje bezwzględnej lokalizacji w układzie współrzędnych. Zamiast tego wartości z zakresu od 0 do 1 są interpretowane jako czynnik dla zakresu bieżącego elementu na każdej osi x,y. Na przykład (0.5,0.5) spowoduje, że przekształcenie renderowania będzie wyśrodkowane na elemecie lub (1,1) umieści przekształcenie renderowania w prawym dolnym rogu elementu. NaN nie jest akceptowaną wartością.

Wartości przekraczające 0 i 1 są również akceptowane i spowodują powstanie bardziej niekonwencjonalnych efektów transformacji. Jeśli na przykład ustawisz RenderTransformOrigin wartość (5,5), a następnie zastosujesz RotateTransformwartość , punkt obrotu będzie daleko poza granicami samego elementu. Przekształcenie będzie obracać element wokół w dużym okręgu, który pochodzi poza prawym dolnym rogu. Źródło może być gdzieś wewnątrz elementu nadrzędnego i może być prawdopodobnie poza ramką lub widokiem. Wartości punktów ujemnych są podobne. Te wartości wykraczają poza granice lewej górnej części.

Przekształcenia renderowania nie wpływają na układ i są zwykle używane do animowania lub stosowania tymczasowego efektu do elementu.

Użycie atrybutu języka XAML

<object RenderTransformOrigin="xOrigin, yOrigin"/>  

Użycie elementu właściwości języka XAML

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

Wartości XAML

xOrigin
Współczynnik pochodzenia poziomego. Zazwyczaj jest to wartość z zakresu od 0 do 1. Zobacz uwagi.

yOrigin
Pionowy współczynnik pochodzenia. Zazwyczaj jest to wartość z zakresu od 0 do 1. Zobacz uwagi.

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

Pole identyfikatora RenderTransformOriginProperty
Właściwości metadanych ustawione na true Brak

Dotyczy

Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Zobacz też