Aracılığıyla paylaş


UIElement.RenderTransformOrigin Özellik

Tanım

tarafından RenderTransformbildirilen herhangi bir olası işleme dönüştürmesinin merkez noktasını öğenin sınırlarına göre alır veya ayarlar. Bu bir bağımlılık özelliğidir.

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

Özellik Değeri

İşleme dönüşümünü bildiren değer. Varsayılan değer koordinatları olan bir Point değeridir (0,0).

Örnekler

Aşağıdaki örnek kodda öğeler oluşturur, bir RenderTransformOriginuygular ve ardından bir RenderTransformuygular.

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

Açıklamalar

RenderTransformOrigin, bir koordinat sisteminde mutlak bir konumu temsil etmediğinden Point yapı değerinin standart olmayan bir kullanımına Point sahiptir. Bunun yerine, 0 ile 1 arasındaki değerler her x,y eksenindeki geçerli öğenin aralığı için bir faktör olarak yorumlanır. Örneğin, (0.5,0.5) işleme dönüşümünün öğe üzerinde ortalanmasına neden olur veya (1,1) işleme dönüşümünü öğenin sağ alt köşesine yerleştirir. NaN kabul edilen bir değer değildir.

0 ve 1'in ötesindeki değerler de kabul edilir ve daha geleneksel olmayan dönüşüm efektlerine neden olur. Örneğin, (5,5) olarak ayarlar RenderTransformOrigin ve sonra bir RotateTransformuygularsanız, döndürme noktası öğenin sınırlarının dışında kalır. Dönüşüm, öğenizi sağ alttan gelen büyük bir daire içinde döndürür. Kaynak, üst öğesinin içinde bir yerde olabilir ve büyük olasılıkla çerçevenin veya görünümün dışında olabilir. Negatif nokta değerleri benzerdir, bunlar sol üst sınırların ötesine geçer.

İşleme dönüşümleri düzeni etkilemez ve genellikle bir öğeye geçici bir efekt eklemek veya uygulamak için kullanılır.

XAML Öznitelik Kullanımı

<object RenderTransformOrigin="xOrigin, yOrigin"/>  

XAML Özellik Öğesi Kullanımı

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

XAML Değerleri

xOrigin
Yatay kaynak faktörü. Bu genellikle 0 ile 1 arasında bir değer olarak verilir. Bkz. Açıklamalar.

yOrigin
Dikey çıkış faktörü. Bu genellikle 0 ile 1 arasında bir değer olarak verilir. Bkz. Açıklamalar.

Bağımlılık Özelliği Bilgileri

Tanımlayıcı alanı RenderTransformOriginProperty
Meta veri özellikleri olarak ayarlandı true Hiçbiri

Şunlara uygulanır

Ayrıca bkz.