簡潔に書けるように StackPanelのような使い勝手の1行(1列)Gridを作りました
<Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="30" /> <ColumnDefinition /><!--<ColumnDefinition Width="*" />--> <ColumnDefinition Width="2*" /> </Grid.ColumnDefinitions> <Button Content="aaaaa" /> <Button Grid.Column="1" /> <Button Grid.Column="2" /> <Button Grid.Column="3" /> </Grid>これが
<z:StackGrid><!--<z:StackGrid Orientation="Horizontal">--> <Button z:StackGrid.Length="Auto" Content="aaaaa" /> <Button z:StackGrid.Length="30" /> <Button /><!--<Button z:StackGrid.Length="*" />--> <Button z:StackGrid.Length="2*" /> </z:StackGrid>こう書けます
メリット
- ColumnDefinitions(RowDefinitions)の行を削減できる
- Grid.Column="1"等を書かなくて済む
コントロールの追加や削除の際に数字を変えるのがほんと面倒でした
デメリット
- 1行または1列限定
- Grid.ColumnSpan(RowSpan)に当たるものがない
- 子要素を重ねられない
子要素を重ねられないのはやや残念ですが 作りこむのが面倒だったのでそういう場面では素直にGridを使ってください