2013-07-30 23 views
0

在我的代码:Grid.Width =“*”是不正确的格式

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

我想内网来填充屏幕的整个宽度。所以我认为把*会做到这一点。但它表示它的格式不正确。

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

回答

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

感谢,但我希望它能成为一面旗帜。与固定高度 – Shi

+0

请检查答案,我更新它。 – Nitesh

0

只是设置网格的的Horizo​​ntalAlignment财产伸展像this..and除去width属性..

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

    </Grid> 

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