Cómo establecer el ancho al 100% en WPF
width autosize (2)
¿Hay alguna manera de decirle al componente en WPF que tome el 100% del espacio disponible?
Me gusta
width: 100%;
en CSS
Tengo este XAML, y no sé cómo forzar a Grid a tomar el ancho del 100%.
<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>
El resultado se ve como
texto alternativo http://foto.darth.cz/pictures/wpf_width.jpg
Lo hice rosado así que es obvio cuánto espacio toma. Necesito hacer que la rejilla rosada tenga un ancho del 100%.
Es el contenedor de la Grid
que se está imponiendo en su ancho. En este caso, eso es un ListBoxItem
, que se alinea a la izquierda por defecto. Puede configurarlo para que se extienda de la siguiente manera:
<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>
Puede usar HorizontalContentAlignment="Stretch"
siguiente manera:
<ListBox HorizontalContentAlignment="Stretch"/>