항상 서브 클래스 Grid
수 있습니다. 각 자식의 Grid.Row
속성을 설정하고 컨트롤이로드 될 때 수동으로 행 정의를 추가하십시오. 컨트롤에 속성을 추가하여 각 행의 균일 한 높이를 지정할 수 있습니다. 예를 들면 :
public class UniformGrid : Grid
{
public double? UniformHeight { get; set; }
public UniformGrid()
{
Loaded += UniformGrid_Loaded;
}
void UniformGrid_Loaded(object sender, RoutedEventArgs e)
{
int i=0;
foreach (FrameworkElement child in Children)
{
var rowHeight = UniformHeight.HasValue ? new GridLength(UniformHeight.Value) : GridLength.Auto;
RowDefinitions.Add(new RowDefinition { Height = rowHeight });
Grid.SetRow(child, i++);
}
}
}
사용법 :
<my:UniformGrid UniformHeight="20">
<Label Content="Hello" />
<Label Content="World" />
</my:UniformGrid>
(일부 의견이 지적했듯이, 위에서 기본적으로 그냥 StackPanel에 유일한 느린,하지만.)
'그러나 나는 100 개의 행이있는 경우 I 100 개의 행 정의를 추가해야합니다'-'Grid'에 100 개의 행을 넣지 마십시오. 그럴 필요는 없으며이를 보여주기 위해서는'1209381203120398 by 12938042309842304'의 화면 해상도가 필요합니다. 그것은 말이되지 않습니다. –
대신 StackPanel을 사용할 수 있습니다 ... – punker76
4 ~ 5 행이 있더라도 전역 적으로 행 높이를 설정하는 방법이 있습니까? – amirm