Grid的最后一个元素不占用父级的所有可用空间

时间:2017-07-20 03:45:36

标签: c# uwp

我正在尝试使用Grid.columndefinition属性在Grid中添加项目。除了最后一个元素(在这里是AutoSuggestBox)没有占用所有可用空间之外,一切都运行良好。 这是我的代码

<Grid>
      <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>

        <Button x:Name="MainMenuBtn" FontFamily="Segoe MDL2 Assets" Content="&#xE700;" Grid.Column="0"/>
        <Button x:Name="BackBtn" FontFamily="Segoe MDL2 Assets" Content="&#xE72B;" Grid.Column="1"/>
        <Button x:Name="ForwardBtn" FontFamily="Segoe MDL2 Assets" Content="&#xE72A;" Grid.Column="2"/>
        <Button x:Name="StopRefreshBtn" FontFamily="Segoe MDL2 Assets" Content="&#xE7C3;" Grid.Column="3"/>
        <AutoSuggestBox x:Name="URLtb" FontFamily="Calibri" HorizontalContentAlignment="Stretch"
          PlaceholderText="Search or type URL" QueryIcon="Find"
            Grid.Column="4"/>             

  </Grid>

为了简单起见,有一个与AutoSuggestBox和Flyout菜单相关联的样式属性,带有第一个按钮,我没有在这里包含它。

上述代码的结果输出类似于, enter image description here

我尝试使用stackpanel和relativepanel,但它们都没有按预期工作。一个小的谷歌搜索面纱在wpf的dockpanel中有lastchildfill属性,在uwp中是否也有类似的东西?

1 个答案:

答案 0 :(得分:1)

您的所有列宽定义都是错误的。前四个应设置为Auto,最后一个*

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>