Condividi tramite


UIElement.RenderTransformOrigin Proprietà

Definizione

Ottiene o imposta il punto di origine di qualsiasi possibile trasformazione di rendering dichiarata da RenderTransform, rispetto ai limiti dell'UIElement.

public:
 property Point RenderTransformOrigin { Point get(); void set(Point value); };
Point RenderTransformOrigin();

void RenderTransformOrigin(Point value);
public Point RenderTransformOrigin { get; set; }
var point = uIElement.renderTransformOrigin;
uIElement.renderTransformOrigin = point;
Public Property RenderTransformOrigin As Point
<uiElement RenderTransformOrigin="x,y"/>

Valore della proprietà

Punto di origine della trasformazione di rendering. Il valore predefinito è un punto con valore 0,0.

Esempio

Questo esempio XAML illustra come impostare RenderTransformOrigin sull'elemento nel codice XAML iniziale. Un'animazione che viene eseguita in un'impostazione predefinita compositeTransform può usare RenderTransformOrigin per modificare sia la scala che ruotare le trasformazioni da applicare al centro dei cerchi anziché all'origine delle coordinate predefinite 0.0. Ciò fa apparire come se il cerchio gira intorno al suo centro e compattazione sul posto.

Nota

Per avviare l'animazione è necessario recuperarla da Risorse e chiamare Begin; tale codice non viene visualizzato.

<Ellipse x:Name="e1" RenderTransformOrigin=".5,.5" Height="100" Width="100" Loaded="e1_Loaded_1">
    <Ellipse.Fill>
        <LinearGradientBrush>
            <GradientStop Color="Red" Offset="0"/>
            <GradientStop Color="Green" Offset="1"/>
        </LinearGradientBrush>
    </Ellipse.Fill>
    <Ellipse.RenderTransform>
        <CompositeTransform />
    </Ellipse.RenderTransform>
    <Ellipse.Resources>
        <Storyboard x:Name="esb1" >
            <DoubleAnimation RepeatBehavior="3x" Duration="0:0:3" From="0" To="360" Storyboard.TargetName="e1" 
              Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" />
            <DoubleAnimation RepeatBehavior="1x" Duration="0:0:7" From="1" To="0" Storyboard.TargetName="e1" 
              Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleX)" />
            <DoubleAnimation RepeatBehavior="1x" Duration="0:0:7" From="1" To="0" Storyboard.TargetName="e1" 
              Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleY)" />
        </Storyboard>
    </Ellipse.Resources>
</Ellipse>

Commenti

RenderTransformOrigin consente di creare o modificare l'effetto di una trasformazione in un particolare elemento senza dover modificare le specifiche della trasformazione RenderTransform . Il valore Point specificato per RenderTransformOrigin non è basato sulle misure di pixel effettive. È invece un punto logico, in cui un valore pari a 0.0 fa riferimento all'angolo superiore sinistro dell'area di rendering generale di UIElement e 1.1 fa riferimento alla parte inferiore destra. Il valore viene quindi valutato in una coordinata X,Y facendolo entrare nello spazio di coordinate corrente dell'UIElement.

Per alcune trasformazioni, l'origine non importa. Ad esempio, renderTransformOrigin non modifica il comportamento di una proprietà TranslateTransform applicata alla proprietà RenderTransform .

Alcuni tipi di trasformazione hanno le proprie proprietà per specificare l'origine della trasformazione. Ad esempio, RotateTransform ha CenterX e CenterY. Quando si usa un oggetto UIElement, gli strumenti di progettazione visiva nascondono talvolta queste altre proprietà in modo da usare solo RenderTransformOrigin per tutte le modifiche all'origine della trasformazione e lasciare le origini specifiche della trasformazione come impostazione predefinita. Gli strumenti possono anche applicare tutti gli effetti di trasformazione a un singolo valore CompositeTransform per RenderTransform, anziché definire elementi XAML per le trasformazioni specifiche e creare un TransformGroup. Se si scrivono trasformazioni XAML o si definiscono trasformazioni nel codice, è possibile prendere in considerazione di seguire queste stesse procedure in modo da usare sempre RenderTransformOrigin anziché i valori di origine specifici della trasformazione se si applicano trasformazioni per RenderTransform, in caso contrario, i valori si sfalseranno l'uno all'altro.

Una tecnica comune consiste nell'impostare RenderTransformOrigin su 0.5.0.5, che inserisce l'origine al centro dell'elemento. È quindi possibile applicare un oggetto RotateTransform per ruotare l'elemento intorno al centro.

La modifica di FlowDirection in RightToLeft modifica il significato della coordinata X di un Oggetto RenderTransformOrigin per un UIElement; 0 sarà il bordo destro.

Alcuni degli stessi effetti visivi che è possibile produrre con RenderTransform e RenderTransformOrigin possono essere ottenuti anche con Proiezione e un PlaneProjection. Ad esempio, è possibile ruotare un UIElement intorno al suo centro modificando PlaneProjection.RotationZ.

Si applica a

Vedi anche