나는 this question을보고 매우 이상한 것을 발견했습니다 : 행의 높이가 Grid.RowSpan
과 관련된 일부 경우에 잘못 계산 된 것처럼 보입니다.왜이 여분의 공간이 Grid에 나타 납니까?
<Grid ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Background="Red">
<Label Content="CELL 1 A"/>
<Label Content="CELL 1 B"/>
<Label Content="CELL 1 C"/>
</StackPanel>
<Grid Grid.Column="0" Grid.Row="2" Background="CornflowerBlue">
<Label Content="CELL 2 D"/>
</Grid>
<StackPanel Grid.Column="1" Grid.Row="0" Grid.RowSpan="3" Background="Yellow">
<Label Content="CELL 3 A"/>
<Label Content="CELL 3 B"/>
<Label Content="CELL 3 C"/>
<Label Content="CELL 3 D"/>
</StackPanel>
<Grid Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" Background="Green">
<Label Content="CELL 4"/>
</Grid>
</Grid>
최종 결과는 높이가 여기
--------------- | 1 | | --------| 3 | | 2 | | --------------- | 4 | ---------------
그리고 문제를 보여주는이 그리드에 대한 몇 가지 예제 코드 것 :
여기에 내가 함께 테스트있어 Grid
의 간단한 도면입니다 세 번째 행 (셀 # 2 및 # 3)의 여백 공간이 많습니다.
첫 번째 셀과 세 번째 셀의 Grid.RowSpan
을 +/- 1로 조정하고 여분의 행을 고려하여 +/- 1에 의해 두 번째 및 네 번째에 대해 Grid.Row
을 조정하면이 올바른 결과가 나타납니다.
과를 일부 제거 :이처럼, 그래서 하나의 행으로 렌더링 할 수있는 세포 # 3에서 충분한 요소를 제거하는 경우
또한 올바른 결과를 얻을 수 개체는 여분의 공간의 오메는
나는 세포의 요소 # 1, # 3, 행 번호의 숫자로 장난 봤는데
적용되고,하지만 난 알아낼 수없는 것 이 행동을 설명하는 결정적인 패턴.셀 # 3의 Grid.RowSpan
을 추가 할 때이 그리드를 렌더링 할 때 장면 뒤에서 WPF는 정확히 무엇을 수행합니까?
격자가 다르게 측정하기 때문에 말하려고했으나 모든 스택 패널을 사용하여 시도했지만 그 행의 크기가 여전히 잘못되었습니다. – Paparazzi
'자동'행 높이가 너무 많습니다. Grid 컨트롤은 행과 열의 스패닝을 처리하는 데 꽤 좋은 역할을하지만 행 높이가 모두 'Auto'로 설정되면 너무 많은 미지수가있는 방정식을 푸는 것과 같습니다. 위쪽 또는 아래쪽 두 행을 고정 된 높이로 제한하면 대단히 도움이됩니다. – Stewbob
@Stewbob 또한 'Height = "*"'에 마지막 행을 남기고 테스트 했으므로 차이가 없습니다. 문제는'RowSpan'을 사용하는 셀의 높이를 결정할 때 발생하며'Grid'가 여분의 수직 공간을 어떻게 할당하는지와 관련이 없습니다. – Rachel