Grid.Width =“*”的格式不正确

时间:2013-07-30 04:47:13

标签: wpf windows-phone-7 xaml windows-phone-8

在我的代码中:

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

我希望内部网格填满整个屏幕宽度。所以我想放*会这样做。但它说它的格式不正确。

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

2 个答案:

答案 0 :(得分:1)

Width属性属于double类型,不接受类型GridLength的值。因此,您将得到一个例外,说“'*'字符串无法转换为长度。”

另外,您不应该设置HorizontalAlignment="Left"。如果您希望拉伸控件的宽度,请将其设置为HorizontalAlignment="Stretch"

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

您可以在here获取更多有用信息。我建议你仔细阅读,以便更好地了解如何在UI上以更好的方式安排/安排控制。

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

答案 1 :(得分:0)

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

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

    </Grid>

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