2009-04-24 10 views
55

¿Hay alguna manera de decirle al componente en WPF que tome el 100% del espacio disponible?Cómo configurar el ancho al 100% en WPF

Como

width: 100%; 

en CSS

Tengo este XAML, y no sé cómo forzar la rejilla de tomar 100% de ancho.

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

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

lo hice rosa así que es obvio cuánto espacio se necesita. Necesito hacer que la rejilla rosada tenga un ancho del 100%.

+0

Enlace está muerto ... –

+0

@MartiniBianco Lo siento, pero esta cuestión es de 8 años de edad . Ni siquiera recuerdo lo que estaba en la imagen, ni he usado WPF desde entonces. –

Respuesta

70

Es el contenedor del Grid que se impone en su ancho. En este caso, eso es ListBoxItem, que está alineado a la izquierda por defecto. Se puede establecer que se estire 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> 
+8

Una pequeña nota: si estás intentando hacer esto en una aplicación de Windows Store, tienes que establecer 'HorizontalContentAlignment' usando el mismo método que el anterior – roryok

+0

HorizontalContentAlignment también me ha funcionado – Skychan

43

usted podría utilizar HorizontalContentAlignment="Stretch" de la siguiente manera:

<ListBox HorizontalContentAlignment="Stretch"/> 
Cuestiones relacionadas