2013-08-05 9 views
12

Sto tentando di impostare un elenco di elementi in WPF che contiene stringhe di lunghezza casuale (nomi di persone). La maggior parte di questi è generalmente di una certa dimensione, ma a volte si incontra una stringa così lunga che finisce fuori dai limiti del suo contenitore. Normalmente l'ho appena troncato quando è troppo lungo, ma preferirei piuttosto mostrare l'intera stringa.Testo in scala WPF da adattare solo quando è troppo grande

Come posso forzare il testo a rimanere nella sua dimensione normale, a meno che non sia troppo grande per adattarlo ... in tal caso ridimensionarlo per adattarlo?

NOTA: Questo non è lo stesso di scalare tutto il testo per adattarsi a una certa dimensione, che si realizza mediante un viewBox intorno al testo

IE: Questo non è quello che voglio:

<Viewbox MaxWidth="100"> 
    <TextBlock Text="{Binding EmployeeDisplayName, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" VerticalAlignment="Center"/> 
</Viewbox> 

Ciò rende tutto più piccolo quando è troppo piccolo, e diminuisce quando è troppo grande. Voglio solo ridurlo quando è troppo grande e MAI scalare quando è troppo piccolo ...

Qualche idea?

+0

duplicato: https://stackoverflow.com/questions/14881683/wpf-automatic-resize-font-until-it-fits-within-parent-control –

risposta

17

Utilizzare un Viewbox ma impostare la proprietà StretchDirection su DownOnly.

<Viewbox MaxWidth="100" StretchDirection="DownOnly"> 
    <TextBlock Text="{Binding EmployeeDisplayName, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" VerticalAlignment="Center"/> 
</Viewbox> 
+0

Esattamente quello che stavo cercando. Amico, NON sono riuscito a trovarlo affatto da Google, che semplice soluzione lol. Ho pensato che i ragazzi del WPF ci avessero pensato prima o poi ... Grazie –