2009-04-24 13 views
55

C'è un modo come dire al componente in WPF prendere il 100% dello spazio disponibile?Come impostare la larghezza al 100% in WPF

Come

width: 100%; 

in CSS

Ho questo XAML, e non so come forzare griglia per prendere il 100% di larghezza.

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

Risultato sembra

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

ho fatto rosa quindi è evidente quanto spazio ci vuole. Devo rendere la griglia rosa al 100% della larghezza.

+0

link è morto ... –

+0

@MartiniBianco Mi dispiace, ma questa domanda è di 8 anni . Non ricordo nemmeno cosa c'era nell'immagine, né ho usato WPF da allora. –

risposta

70

È il contenitore di Grid che si sta imponendo sulla sua larghezza. In questo caso, questo è un ListBoxItem, che è allineato a sinistra per impostazione predefinita. È possibile impostare per allungare come segue:

<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 piccola nota: se stai provando a farlo in un'app di Windows Store, devi effettivamente impostare 'HorizontalContentAlignment' usando lo stesso metodo di cui sopra – roryok

+0

HorizontalContentAlignment ha funzionato anche per me – Skychan

43

si potrebbe usare HorizontalContentAlignment="Stretch" come segue:

<ListBox HorizontalContentAlignment="Stretch"/> 
Problemi correlati