我有一组想要在 WPF 窗口上显示的键/值对。我使用网格将它们布局如下:
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0">Code</Label>
<TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Code}"/>
<Label Grid.Row="1" Grid.Column="0">Name</Label>
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Name}"/>
</Grid>
但是,当我显示此内容时,文本框被挤压,其顶部和底部边框接触上方/下方的文本框。在此布局中向行添加垂直空间的最佳方法是什么?
最佳答案
最简单的方法是在各个控件上设置边距。将其设置在文本框上应该就足够了,因为一旦它们间隔开,标签将垂直设置在每行的中心,并且无论如何都有足够的空间。
您可以使用样式设置一次:
<Grid Margin="4">
<Grid.Resources>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Margin" Value="0,0,0,4" />
</Style>
</Grid.Resources>
...
</Grid>
这将在网格内任何文本框的底部添加 4 像素边距。
关于wpf - WPF 网格中子控件之间的间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/895909/