Rob*_*ney 23
是否有一些WPF相当于nobr?
请记住,您可以嵌套面板:
<WrapPanel Orientation="Horizontal">
<StackPanel Orientation="Horizontal">
<Label>Some field</Label>
<TextBox>Some value</TextBox>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label>Another field</Label>
<TextBox>Another value</TextBox>
</StackPanel>
...
</WrapPanel>
Run Code Online (Sandbox Code Playgroud)
此外,对于柱状布局,Grid的共享大小范围可以协调使用它的任意数量的网格:
<StackPanel Orientation="Vertical" Grid.IsSharedSizeScope="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Label"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0">Some field</Label>
<TextBox Grid.Column="1">Some value</TextBox>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Label"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0">Another field</Label>
<TextBox Grid.Column="1">Another value</TextBox>
</Grid>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
我有点讨厌XAML的冗长,特别是你必须重复列定义.虽然如果你正确地构建你的类并使用模板,它并不是那么糟糕.请注意,您不会在此方案中的任何位置跟踪行号,因此重新排序字段很简单.
您可能正在寻找的是堆栈面板.使用垂直StackPanel可以一致地排列标签和控件.对于每个标签和控件,您可能需要一个像这样的水平堆栈面板
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<Label Width="150">Name</Label>
<TextBox Width="200" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Width="150">Date of Birth</Label>
<DatePicker Width="200" />
</StackPanel>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
现在,您可以添加,删除,编辑和重新排序您的内容,而无需担心列和行.