2013-11-21 18 views
5

Ho bisogno di scrivere del testo nell'orientamento specificato per l'immagine qui sotto. Il fatto è che ho visto alcuni esempi qui intorno usando un blocco di testo e ruotando l'angolo del controllo usando "RenderTransform", ma questo non è ciò di cui ho veramente bisogno. Ho provato a farlo usando un'immagine ma non si adatta molto bene ... quindi non so davvero come risolverlo. Se guardi l'immagine a lato puoi vedere che il testo è scritto dal basso verso l'alto e la linea sotto il testo è nella parte destra dello schermo. Questa è la schermata che ho bisogno di sviluppare:WPF: come scrivere il testo in una direzione diversa?

What I have to do!

ho provato facendo ruotare il blocco di testo, ma l'unico modo che funziona per me stava avvolgendo il testo, ma questo è solo la soluzione "più vicino" che ho trovato. Inoltre, come puoi vedere, ho bisogno di impostare un bordo per il blocco di testo.

enter image description here

In ogni caso, spero che mi può aiutare, perché ogni esempio intorno si adatta con il mio problema.

+0

* utilizzando "RenderTransform", ma questo non è quello di cui ho veramente bisogno * è così che viene fatto. Puoi smettere di guardare ora. – Will

risposta

2

Al fine di ruotare il testo a 90 gradi, credo che sarà necessario utilizzare il LayoutTransform al posto del RenderTransform:

<TextBlock Text="FootRoller" HorizontalAlignment="Center" VerticalAlignment="Center"> 
    <TextBlock.LayoutTransform> 
     <RotateTransform Angle="-90"/> 
    </TextBlock.LayoutTransform> 
</TextBlock> 

La differenza è quando la trasformazione sarà applicato. Utilizzando LayoutTransform, il testo verrà ruotato prima dello il passaggio del layout e questo sarà importante nel tuo caso. Immagino che utilizzando il RenderTransform ruoterà il vostro TextBlock, ma come fa che dopo il valico di layout, non avrebbe mostrato tutto ... questo è perché è stato misurato per dimensioni prima è stato ruotato.

È possibile trovare tutti i dettagli dalla pagina Transforms Overview su MSDN. Dalla pagina collegata:

LayoutTransform - una trasformazione che viene applicata prima del passo di layout. Dopo l'applicazione della trasformazione, il sistema di layout elabora le dimensioni e la posizione trasformate dell'elemento.

RenderTransform - Una trasformazione che modifica l'aspetto dell'elemento ma viene applicata al termine del passaggio del layout. Utilizzando la proprietà RenderTransform anziché la proprietà LayoutTransform, è possibile ottenere vantaggi in termini di prestazioni.

+0

Doh, avrei dovuto aggiungere che potevi letteralmente cambiare 'RenderTransform' in' LayoutTransform', ma la spiegazione è sicuramente buona. –

+0

Intendevi * cambiare RenderTransform in LayoutTransform *? – Sheridan

+0

potrebbe aggiornare la tua pagina;) –

0

Se RenderTransform non ha funzionato, dai un'occhiata a LayoutTransform. Non ci hai spiegato perché RenderTransform non ha funzionato, ma di solito è una scommessa sicura che LayoutTransform risolverà qualsiasi problema ti sia stato.

2

Stanno bene. RenderTransform dovrebbe essere tutto ciò di cui hai bisogno. Piace;

<TextBlock Text="FootRoller" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center"> 
    <TextBlock.RenderTransform> 
     <CompositeTransform Rotation="-90"/> 
    </TextBlock.RenderTransform> 
</TextBlock> 

P.S. - Puoi letteralmente cambiare lo RenderTransform a LayoutTransform che Sheridan ha fornito una spiegazione nella sua risposta.