如何在WPF中设置宽度为100%

有什么办法如何告诉组件在WPF中占用100%的可用空间?

喜欢

width: 100%; 

在CSS中

我有这个XAML,我不知道如何强制Grid达到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> 

结果看起来像

替代文字http://foto.darth.cz/pictures/wpf_width.jpg

我做了粉红色,所以很明显需要多less空间。 我需要使粉红色的网格100%的宽度。

它是Grid的宽度上的容器。 在这种情况下,这是一个ListBoxItem ,默认情况下是左alignment的。 您可以将其设置为如下所示:

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

你可以使用HorizontalContentAlignment="Stretch" ,如下所示:

 <ListBox HorizontalContentAlignment="Stretch"/>