2013-02-14 7 views
14

Ho un controllo utente il cui elemento radice è una griglia.Carattere di ridimensionamento automatico WPF finché non si adatta al controllo genitore

Ho anche un ContentControl che funge da segnaposto per il testo che viene riempito quando i dati vengono caricati. Questo controllo può essere spostato all'interno del controllo utente e quindi la sua posizione può essere ovunque.

Se il testo è troppo lungo per adattarsi alla griglia radice del controllo utente, voglio ridurre la dimensione del carattere di ContentControl fino a quando il testo non si adatta.

Il mio problema è che non riesco a trovare un evento che posso gestire per fare questo processo. Ho provato a utilizzare l'evento ContentControl.LayoutUpdated, tuttavia, il parametro del mittente per questo sembra sempre essere nulla ... che non è davvero utile!

Non vedo davvero alcun consiglio su come raggiungere questo obiettivo.

Grazie

-Frinny

+4

Si potrebbe circondare il ContentControl con un Viewbox che scalerà il ContentControl per adattarsi alla griglia. È un'opzione? –

risposta

28

avvolgendo il ContentControl in un set Viewbox in scala solo verso il basso farà questo per voi:

<Viewbox StretchDirection="DownOnly" Stretch="Uniform"> 
    <ContentControl Content="Some Text"/> 
</Viewbox>