2009-06-11 1 views
28

Я только начал играть с WPF.WPF/Silverlight XAML Размер растягиваемого текста для установки контейнера?

Возможно ли размер шрифта Label или TextBlock, чтобы заполнить его родительский контейнер?

Спасибо, Марк

+0

Чтобы уточнить, вы имеете в виду фактический размер точки шрифта или размер содержащего TextBlock/Label? – PeterAllenWebb

ответ

47

Вы можете использовать ViewBox для визуального увеличения чего-то, чтобы соответствовать в его контейнере. Другие решения здесь работают, но они только растягивают контроль, а не его содержимое. ViewBox будет растягивать оба.

<!-- Big grid, will stretch its children to fill itself --> 
<Grid Width="1000" Height="1000"> 
<!-- The button is stretched, but its text remains teeny tiny --> 
<Button> 
    <!-- The viewbox will stretch its content 
    to fit the final size of the button --> 
    <Viewbox 
     Margin="4" 
     VerticalAlignment="Stretch" 
     Height="Auto"> 
     <!-- The textblock and its contents are 
     stretched to fill its parent --> 
     <TextBlock 
      Text="Bartenders" /> 
    </Viewbox> 
</Button> 
</Grid> 
+1

Спасибо, я думал, что это возможно, но у меня были видения необходимости связывать свойство размера шрифта. – Mark

+0

Хорошее решение, но оно может убить производительность ... :-( –

+0

@ Jmix90: Любые фактические цифры по производительности? Было бы понятно, если бы у вас было много этих элементов управления на форме и они часто изменяли их размер. t до тех пор, пока они не будут. – Will

0

Использование DockPanel в качестве родительского контейнера

<DockPanel> 
    <TextBlock /> 
</DockPanel> 
1

Set HorizonalAlignment/VerticalAlignment "растянуть".

2

Зависит от родительского контейнера

Сетка, DockPanel протянет ваш контроль StackPanel, WrapPanel оставит его под контроль до самого размера ..

Смежные вопросы