在WPF中,我有这个简单的网格
<Grid>
<Label Content="Firstlabel" />
<Label Content="Secondlabel" />
</Grid>
当我运行它们时,它们都被放置在彼此之上,因此你看不到SecondLabel,只有FirstLabel可见。
现在,显然我没有使用任何边距,或者dockpanel / stackpanel / Wrappanel。
我会认为像HTML Divs(我知道,比较苹果和橘子),SecondLabel只会将* next *放到FirstLabel中,两者都可见。
所以一个* 必须 *在这种情况下使用布局容器还是有替代方案?
由于
答案 0 :(得分:1)
我认为必须使用布局容器。但是,Grid
也是一个布局容器。如果您不想使用行为与您描述的StackPanel
或任何其他控件,您还可以在Grid
内定义行和列。
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label Content="Firstlabel" Grid.Row="0" />
<Label Content="Secondlabel" Grid.Row="1" />
</Grid>
您还可以设置RowDefinition
的宽度。
答案 1 :(得分:1)
我认为您正在寻找的是列定义:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<Grid.ColumnDefinitions>
<Label Content = "FirstLabel" Grid.Column="0" />
<Label Content = "SecondLabel" Grid.Column="1" />
</Grid>
希望这有帮助。