Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set width to 100% in WPF

Is there any way how to tell component in WPF to take 100% of available space?

Like

width: 100%;   

in CSS

I've got this XAML, and I don't know how to force Grid to take 100% width.

<ListBox Name="lstConnections">   <ListBox.ItemTemplate>     <DataTemplate>       <Grid Background="LightPink">         <Grid.ColumnDefinitions>           <ColumnDefinition Width="Auto"/>           <ColumnDefinition Width="Auto"/>         </Grid.ColumnDefinitions>         <Grid.RowDefinitions>           <RowDefinition Height="Auto"/>           <RowDefinition Height="Auto"/>         </Grid.RowDefinitions>         <TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Path=User}" Margin="4"></TextBlock>         <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Path=Password}" Margin="4"></TextBlock>         <TextBlock Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding Path=Host}" Margin="4"></TextBlock>       </Grid>     </DataTemplate>   </ListBox.ItemTemplate> </ListBox> 

Result looks like

alt text http://foto.darth.cz/pictures/wpf_width.jpg

I made it pink so it's obvious how much space does it take. I need to make the pink grid 100% width.

like image 968
Jakub Arnold Avatar asked Apr 24 '09 20:04

Jakub Arnold


1 Answers

It is the container of the Grid that is imposing on its width. In this case, that's a ListBoxItem, which is left-aligned by default. You can set it to stretch as follows:

<ListBox>     <!-- other XAML omitted, you just need to add the following bit -->     <ListBox.ItemContainerStyle>         <Style TargetType="ListBoxItem">             <Setter Property="HorizontalAlignment" Value="Stretch"/>         </Style>     </ListBox.ItemContainerStyle> </ListBox> 
like image 66
Kent Boogaart Avatar answered Oct 15 '22 23:10

Kent Boogaart