UIElement.RenderTransformOrigin Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví středový bod jakékoli možné vykreslení transformace deklarované , RenderTransformvzhledem k hranici prvku. Toto je vlastnost závislosti.
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
Hodnota vlastnosti
Hodnota, která deklaruje transformaci vykreslování. Výchozí hodnota je Point souřadnice (0,0).
Příklady
Následující příklad sestaví prvky v kódu, použije RenderTransformOrigina pak použije 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
Poznámky
RenderTransformOrigin má poněkud nestandardní použití Point hodnoty struktury v tom, že Point nepředstavuje absolutní umístění v souřadnicovém systému. Místo toho se hodnoty mezi 0 a 1 interpretují jako faktor pro rozsah aktuálního prvku v každé ose x,y. Například (0,5,0,5) způsobí, že se transformace vykreslení zacentruje na prvek, nebo (1,1) umístí transformaci vykreslení do pravého dolního rohu prvku. NaN není akceptovaná hodnota.
Hodnoty nad rámec 0 a 1 jsou také přijímány a budou mít za následek nekonvenční transformační efekty. Pokud například nastavíte RenderTransformOrigin hodnotu (5,5) a použijete RotateTransform, bod otáčení bude dobře mimo hranice samotného prvku. Transformace bude váš prvek otáčet kolem velkého kruhu, který pochází z pravého dolního rohu. Původ může být někde uvnitř nadřazeného prvku a může být pravděpodobně mimo rámec nebo zobrazení. Záporné hodnoty bodů jsou podobné, tyto hodnoty budou přesahovat horní levé hranice.
Transformace vykreslování nemají vliv na rozložení a obvykle se používají k animaci nebo použití dočasného efektu na prvek.
Použití atributu XAML
<object RenderTransformOrigin="xOrigin, yOrigin"/>
Použití elementu vlastnosti XAML
<object>
<object.RenderTransformOrigin>
<Point X=" xOrigin " Y=" yOrigin "/>
</object.RenderTransformOrigin>
</object>
Hodnoty XAML
xOrigin Faktor vodorovného původu. Obvykle se jedná o hodnotu od 0 do 1. Viz poznámky.
yOrigin Faktor svislého původu. Obvykle se jedná o hodnotu od 0 do 1. Viz poznámky.
Informace o vlastnosti závislosti
| Item | Hodnota |
|---|---|
| Pole Identifikátor | RenderTransformOriginProperty |
Vlastnosti metadat nastavené na true |
None |