情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

UIElement.RenderTransformOrigin プロパティ

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

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

public Point RenderTransformOrigin { get; set; }
<object>
  <object.RenderTransformOrigin>
    <Point X="xOrigin" Y="yOrigin"/>
  </object.RenderTransformOrigin>
</object>
<object RenderTransformOrigin="xOrigin, yOrigin"/>

XAML の値

xOrigin

水平方向の中心点の係数。 通常、これは 0 と 1 の間の値で指定されます。 「解説」を参照してください。

yOrigin

垂直方向の中心点の係数。 通常、これは 0 と 1 の間の値で指定されます。 「解説」を参照してください。

プロパティ値

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

識別子フィールド

RenderTransformOriginProperty

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

None

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


.NET Framework

サポート対象: 4、3.5、3.0

.NET Framework Client Profile

サポート対象: 4、3.5 SP1

Windows 7, Windows Vista SP1 以降, Windows XP SP3, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2

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

コミュニティの追加

表示:
© 2014 Microsoft