我有一个 WPF 表单,我想在其上放置一个标准表单。每个表单元素都有一个标签,然后是一个控件。相当标准的东西。
如果我使用包裹面板,它可能会导致标签和控件分离,但我希望它们保持在一起。是否有一些 WPF 相当于<nobr/>
?
网格可以工作,并允许跨列等,但是我真的很讨厌您在每个控件上指定列和行。这使得重新排序或将内容插入列表变得非常不方便。
有没有办法让网格使用更多 HTML 样式的列/行,其中项目是它们所在行的子项,以便我可以轻松地重新排序?
是否有其他控件可以让我轻松布局表单?
是否有一些与 nobr 等效的 WPF?
请记住,您可以嵌套面板:
<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>
此外,对于柱状布局,网格的共享大小范围可以协调使用它的任意数量的网格:
<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>
我有点讨厌 XAML 的冗长,尤其是您必须重复列定义。不过,如果您正确地构建类并使用模板,那么事情并没有那么糟糕。请注意,您不会跟踪此方案中任何位置的行号,因此对字段重新排序很简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)