WPF/Silverlight XAML Stretch Text Size to Fit container?

Mark picture Mark · Jun 11, 2009 · Viewed 22k times · Source

I've just started to play with WPF.

Is it possible to have the size of the text of a Label or TextBlock size itself to fill it's parent container?

Thanks, Mark

Answer

user1228 picture user1228 · Jun 11, 2009

You can use a ViewBox to visually zoom something to fit within its container. The other solutions here work, but they only stretch the control, not its content. The ViewBox will stretch both.

<!-- 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>