2010-06-24 3 views
0

여기에 내가 원하는 레이아웃입니다. 행 2, 열 1에 그룹 상자가 포함됩니다. 행 2, 열 2에 다른 그룹 상자가 포함됩니다.두 열에 걸쳐 WPF 그룹 상자를 구현하는 방법은 무엇입니까? 모두 열 걸쳐 그룹 상자를 포함해야 2 열, 2 행</p> <p>행 1</p> <p>그리드 :

행 1의 그룹 상자에서 왼쪽에 레이블/콤보 상자 스택이 있어야합니다. 오른쪽에는 레이블/체크 상자 스택이 있습니다. 행 2/열 1 그룹 상자에서 첫 번째 행의 레이블/콤보 상자와 정렬해야하는 더 많은 레이블/콤보 상자를 원합니다. 행 2/열 2 그룹 상자에서 첫 번째 행의 레이블/확인란과 정렬되는 더 많은 레이블/확인란을 원합니다.

여기까지 제가 지금까지 있습니다. 내가 겪고있는 문제는 1 행의 그룹 상자에있는 레이블/콤보 상자 쌍이 전체 그룹 상자를 확장하려고한다는 것입니다. 그러나 레이블/콤보 상자가 들어있는 내부 격자에 대해 행 = 0, 열 = 0을 명시 적으로 설정하고 있습니다.

Studio가없는 컴퓨터에서 인쇄물을 입력 할 때 컴파일되지 않으면 용서해주십시오.

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/>  
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    <Grid.ColumnDefinitions> 
    <GroupBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"> 
     <GroupBox.Header> 
     <Label Content="Device Configuration"></Label> 
     </GroupBox.Header> 
     <Grid Grid.Row="0" Column="0"> 
     <Grid.RowDefinitions> 
      <RowDefinition/> 
      <RowDefinition/>  
      <RowDefinition/>  
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition/> 
      <ColumnDefinition/> 
     <Grid.ColumnDefinitions> 

     <Label Grid.Column="0" Grid.Row="0" Content="Label 1"></Label> 
     <ComboBox Grid.Column="1" Grid.Row="0"></ComboBox> 

     <Label Grid.Column="0" Grid.Row="1" Content="Label 2"></Label> 
     <ComboBox Grid.Column="1" Grid.Row="1"></ComboBox> 

     <Label Grid.Column="0" Grid.Row="2" Content="Label 3"></Label> 
     <ComboBox Grid.Column="1" Grid.Row="2"></ComboBox> 
     </Grid> 
    </GroupBox> 
</Grid> 

답변

1

컨트롤이 더 이상 그리드의 직계 종속이 아니게되면 그리드 패널 내에 있다는 개념이 없으며 그리드 패널 내에서 서식이 지정되지 않습니다. 따라서 GroupBox가 있기 때문에 그리드의 직접적인 자손이 아닙니다.

GroupBox의 내용이 최상위 Grid의 일부인 것처럼 보이게하려면 GridBox 구조 (GroupBox의 2 열)를 스스로 재현해야합니다.

Visual Studio는 모눈이 격자가 아니더라도 항목에 Grid. *를 입력해도 오류가 발생하지 않습니다.

0

닫기님께 있습니다. 나는 당신의 코드를 위반했는지 아닌지를 알 수 있지만, 당신은 Grid.ColumnDefinitions 태그를 닫지 않았다. 열을 일렬로 배열하려면 맨 위 그룹 상자에 첫 번째 눈금 선을 재현해야 할 수도 있습니다.

<Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition/> 
      <RowDefinition/> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition/> 
      <ColumnDefinition/> 
     </Grid.ColumnDefinitions> 

     <GroupBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"> 
      <GroupBox.Header> 
       <Label Content="Device Configuration"></Label> 
      </GroupBox.Header> 
      <Grid Grid.Row="0" Column="0"> 
       <Grid.RowDefinitions> 
        <RowDefinition/> 
        <RowDefinition/> 
        <RowDefinition/> 
       </Grid.RowDefinitions> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition/> 
        <ColumnDefinition/> 
       </Grid.ColumnDefinitions> 

       <Label Grid.Column="0" Grid.Row="0" Content="Label 1"></Label> 
       <ComboBox Grid.Column="1" Grid.Row="0"></ComboBox> 

       <Label Grid.Column="0" Grid.Row="1" Content="Label 2"></Label> 
       <ComboBox Grid.Column="1" Grid.Row="1"></ComboBox> 

       <Label Grid.Column="0" Grid.Row="2" Content="Label 3"></Label> 
       <ComboBox Grid.Column="1" Grid.Row="2"></ComboBox> 
      </Grid> 
     </GroupBox> 

     <GroupBox Grid.Row="1" Grid.Column="0"> 
      <TextBlock>Row 1 Column 0</TextBlock> 
     </GroupBox> 

     <GroupBox Grid.Row="1" Grid.Column="1"> 
      <TextBlock>Row 1 Column 1</TextBlock> 
     </GroupBox> 
    </Grid>