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

如何在WPF中将宽度设置为100%,wpf,width,autosize,Wpf,Width,Autosize,有没有办法告诉WPF中的组件占用100%的可用空间 像 width: 100%; 在CSS中 我有这个XAML,我不知道如何强制网格采用100%宽度 <ListBox Name="lstConnections"> <ListBox.ItemTemplate> <DataTemplate> <Grid Background="LightPink"> <Grid.ColumnDefinitions&g

有没有办法告诉WPF中的组件占用100%的可用空间

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>

结果看起来像


我把它做成了粉红色,所以很明显它占用了多少空间。我需要使粉红色网格100%宽度。

正是
网格的容器对其宽度施加了影响。在本例中,这是一个默认为左对齐的
ListBoxItem
。可以将其设置为“拉伸”,如下所示:

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


一个小提示-如果您试图在windows应用商店应用程序中执行此操作,您必须实际使用与上述链接相同的方法设置
HorizontalContentAlignment
。@Martinibanco对不起,这个问题已经问了8年了。我甚至不记得图像中是什么,从那以后我也没有使用过WPF。