2017-01-03 27 views
1

我想在更大的容器列中嵌套一組列。我打算爲此使用網格,但我願意接受建議。我想結果看起來如下第1行col 1和第2行col 1有子列1a,1b,1c和1d。嵌套在另一列內的列

enter image description here

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Name="row0" Height="35"></RowDefinition> 
     <RowDefinition Name="row1" Height="20"></RowDefinition> 
     <RowDefinition Name="row2" Height="35"></RowDefinition> 
     <RowDefinition Name="row3" Height="35"></RowDefinition> 
     <RowDefinition Name="row4" Height="35"></RowDefinition> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Name="col0" Width="75"></ColumnDefinition> 
     <ColumnDefinition Name="col1" Width="400"></ColumnDefinition> 
     <ColumnDefinition Name="col2" Width="75"></ColumnDefinition> 
    </Grid.ColumnDefinitions> 
+3

跨越你有沒有考慮使用,而不是嵌套網格Grid.ColumnSpan? – wkl

+0

接受@wkl的建議,看看使用ColumnSpan不如嵌套網格效果更好。除此之外,我只想補充一點,只要列和行的數量不是動態的,Grid絕對是這裏的一種方式。 –

回答

2

嵌套網格可以工作,但如果您有動態內容,ColumnSpan會使您的不同列保持一致。

在我的例子中,我爲中間部分創建了三個新列。 然後像行0山坳1列,我簡單地告訴它跨越4列

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Name="row0" Height="35" /> 
     <RowDefinition Name="row1" Height="20" /> 
     <RowDefinition Name="row2" Height="35" /> 
     <RowDefinition Name="row3" Height="35" /> 
     <RowDefinition Name="row4" Height="35" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Name="col0" Width="75" /> 
     <ColumnDefinition Name="col1" Width="75" /> 
     <ColumnDefinition Name="col2" Width="125" /> 
     <ColumnDefinition Name="col3" Width="125" /> 
     <ColumnDefinition Name="col4" Width="75" /> 
     <ColumnDefinition Name="col5" Width="75" /> 
    </Grid.ColumnDefinitions> 

    <TextBox Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="4" /> 
    <TextBox Grid.Row="1" Grid.Column="1" /> 
    <TextBox Grid.Row="1" Grid.Column="2" /> 
    <TextBox Grid.Row="2" Grid.Column="0" /> 
    <TextBox Grid.Row="2" Grid.Column="4" /> 
    <TextBox Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="4" /> 
</Grid> 

enter image description here enter image description here

2

只需添加另一種網格,將其添加到父容器在某個網格單元。 (如果嵌套的是你想要去的方式)

<Grid Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="1" Grid.RowSpan="2"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
</Grid> 
1

代替嵌套網格,我建議只使用一個網格,並在row0col1,row3col1和row4col1的內容定義Grid.ColumnSpan="4"