WPF/Silverlight XAML Растянуть размер текста, чтобы соответствовать контейнеру?

Я только начал играть с WPF.

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

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


person Mark    schedule 11.06.2009    source источник
comment
Чтобы уточнить, вы имеете в виду фактический размер шрифта в пунктах или размер содержащего TextBlock/Label?   -  person PeterAllenWebb    schedule 11.06.2009


Ответы (4)


Вы можете использовать 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>
person Community    schedule 11.06.2009
comment
Спасибо, Уилл, я думал, что это должно быть возможным, но у меня было видение необходимости привязки свойства размера шрифта. - person Mark; 12.06.2009
comment
@ Jmix90: Есть реальные цифры производительности? Было бы понятно, если бы у вас было много этих элементов управления в форме и вы часто изменяли их размер. Но проблемы с производительностью не имеют значения. - person ; 21.03.2011
comment
Но проблемы с производительностью не возникают, пока они не станут тем, на что я указывал.. :-D - person Jonathan ANTOINE; 21.03.2011

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

Grid, DockPanel растянет ваш элемент управления StackPanel, WrapPanel предоставит элементу управления возможность изменять размер.

person Arcturus    schedule 11.06.2009

Установите для HorizonalAlignment/VerticalAlignment значение «растянуть».

person Simon P Stevens    schedule 11.06.2009

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

<DockPanel>
  <TextBlock />
</DockPanel>
person Andrija    schedule 11.06.2009