0

在我的代码中:

<Grid x:Name="LayoutRoot" Background="Black">

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

    <Grid Name="Panel" Grid.Row="0" Grid.Column="0" Height="100" Width="*" HorizontalAlignment="Left" VerticalAlignment="Top">

    </Grid>
</Grid>

我希望内部网格填充屏幕的整个宽度。所以我想立一个*遗嘱。但它说它的格式不正确。

如何设置内部网格以填充宽度?

4

2 回答 2

1

Widthproperty 是 typedouble并且不接受 type 的值GridLength。因此你会得到一个异常说“'*' 字符串不能转换为长度。”

你也不应该设置HorizontalAlignment="Left". 如果您想拉伸控件的宽度,请将其设置为HorizontalAlignment="Stretch".

如果设置HorizontalAlignment="Left",则元素与父元素分配的布局空间的左侧对齐。

您可以在这里获得更多有用的信息。我建议您仔细研究一下,以便您了解如何在 UI 上以更好的方式放置/排列控件。

<Grid Name="Panel" Grid.Row="0" Grid.Column="0" Height="100" HorizontalAlignment="Stretch" VerticalAlignment="Top" />
于 2013-07-30T04:48:17.527 回答
0

只需将网格的 Horizo ​​ntalAlignment属性设置为像这样拉伸..并删除 width 属性..

<Grid Name="Panel" Grid.Row="0" Grid.Column="0" Height="100"  HorizontalAlignment="Stretch" VerticalAlignment="Top">

    </Grid>

希望它能解决你的问题..

于 2013-07-30T05:25:36.933 回答