2013-08-05 11 views
12

Próbuję skonfigurować listę elementów w WPF, która zawiera ciągi losowej długości (nazwiska osób). Większość z nich ma zazwyczaj pewną wielkość, ale czasami natrafiamy na ciąg tak długi, że kończy się poza jego kontenerem. Normalnie po prostu ją skracałem, gdy jest za długa, ale wolałbym pokazać cały ciąg.Tekst w skrypcie WPF pasuje tylko wtedy, gdy jest zbyt duży

Jak mogę zmusić tekst, aby pozostał jego normalnym rozmiarem, chyba że jest zbyt duży, aby go dopasować ... w takim przypadku skalować go tak, aby pasował?

UWAGA: To nie jest takie samo jak skalowanie cały tekst, aby dopasować pewną wielkość, która odbywa się za pomocą viewbox wokół tekstu

IE: nie jest to co chcę:

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

To sprawia, że ​​wszystko staje się większe, gdy jest za małe, a także skalowane, gdy jest za duże. TYLKO chcę, aby zmniejszał się, gdy jest zbyt duży i NIGDY nie skaluje się, gdy jest zbyt mały ...

Jakieś myśli?

+0

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

Odpowiedz

17

Użyj Viewbox, ale ustaw jego właściwość StretchDirection na DownOnly.

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

Dokładnie to, czego szukałem. Człowieku, nie mogłem znaleźć tego w ogóle od Google'a, co za prosta łatka lol. Pomyślałem, że faceci z WPF myśleli o tym w pewnym momencie ... Dzięki –

Powiązane problemy