我有以下XAML:
<Window x:Class="WpfTest.Window2" ...
<Grid>
<Grid.RowDefinitions>
<!-- 0: Row Zero -->
<RowDefinition Height="30" />
<!-- 1: Row 1 -->
<RowDefinition Height="30" />
<!-- 2: Row 2 -->
<RowDefinition Height="30" />
...
<!-- and so on. -->
<!-- 0: Row Zero elements -->
<Label Grid.Row="0" ... />
<TextBlock Grid.Row="0" ... />
<!-- 1: Row 1 elements -->
<Label Grid.Row="1" ... />
<TextBlock Grid.Row="1" ... />
...
在设计时,如果我必须插入一行,比如说在第0行和第1行之间,那么我必须为所有Grid.Row
和Label
的{{1}}附加属性重新编号元素,因为现在它们都被加一个。
是否有更简单的方法可以插入一行,而不必调整该行下面的剩余项目?
答案 0 :(得分:1)
正如评论中所述,我们无法直接使用Grid
执行此操作。不幸的是,您必须手动重排索引。
另一个选项,如果这对您来说非常重要,那就是创建一个自定义面板并使用一些非可视子元素作为行分隔符。在内部,该小组仍然可以使用Grid
来定位其子级,并且必须自己设置Grid.Row
和/或Grid.Column
附加的属性值。