2009-04-24 4 views
55

Есть ли способ сообщить компоненту в WPF взять 100% доступного пространства?Как установить ширину до 100% в WPF

Как

width: 100%; 

в CSS

Я получил этот код XAML, и я не знаю, как заставить сетку брать ширину 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> 

Результат выглядит

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

Я сделал это розовый, так что очевидно, сколько места занимает. Мне нужно сделать розовую сетку шириной 100%.

+0

Ссылка мертв ... –

+0

@MartiniBianco Мне очень жаль, но этот вопрос 8 лет , Я даже не помню, что было на изображении, и я не использовал WPF с тех пор. –

ответ

70

Это контейнер Grid, который налагает на его ширину. В этом случае это ListBoxItem, который по умолчанию выровнен по левому краю. Вы можете установить его растягивать следующим образом:

<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

Небольшое примечание. Если вы пытаетесь сделать это в приложении для магазина Windows, вы должны фактически установить 'HorizontalContentAlignment', используя тот же метод, что и выше. – roryok

+0

HorizontalContentAlignment работал для меня также – Skychan

43

Вы можете использовать HorizontalContentAlignment="Stretch" следующим образом:

<ListBox HorizontalContentAlignment="Stretch"/> 
Смежные вопросы