このドキュメントはアーカイブされており、メンテナンスされていません。

UIElement.RenderTransformOrigin プロパティ

更新 : 2007 年 11 月

RenderTransform によって宣言された任意の描画変換の、要素の境界に対する中心点を取得または設定します。これは、依存関係プロパティです。

名前空間 :  System.Windows
アセンブリ :  PresentationCore (PresentationCore.dll 内)
XAML の XMLNS : http://schemas.microsoft.com/winfx/xaml/presentation

public Point RenderTransformOrigin { get; set; }
/** @property */
public Point get_RenderTransformOrigin()
/** @property */
public  void set_RenderTransformOrigin(Point value)

public function get RenderTransformOrigin () : Point
public function set RenderTransformOrigin (value : Point)
<object>
  <object.RenderTransformOrigin>
    <Point X="xOrigin" Y="yOrigin"/>
  </object.RenderTransformOrigin>
</object>
<object RenderTransformOrigin="xOrigin, yOrigin"/>
xOrigin
                    水平方向の中心点の係数。通常、これは 0 と 1 の間の値で指定されます。「解説」を参照してください。
                yOrigin
                    垂直方向の中心点の係数。通常、これは 0 と 1 の間の値で指定されます。「解説」を参照してください。
                

プロパティ値

型 : System.Windows.Point

描画変換を宣言する値。既定値は、座標 (0,0) の Point です。

識別子フィールド

RenderTransformOriginProperty

true に設定されたメタデータのプロパティ

なし

RenderTransformOrigin での Point 構造体の値の使用方法は通常とは異なり、Point が座標系の絶対位置を表しません。代わりに、x 軸と y 軸で、0 から 1 までの値が、現在の要素の範囲に対する係数として解釈されます。たとえば、(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;
}


Windows Vista

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

.NET Framework

サポート対象 : 3.5、3.0
表示: