网格行和列定义似乎是硬编码的,如下所示:
Grid.Row="3" Grid.Column="1"
我正在开发一个新的WPF应用程序,我不得不不断添加和删除我的网格中的新行,因为客户端决定了表单的外观。我发现这是一项相当繁琐的工作。如果在顶部附近插入一行,我必须手动更改我刚插入的行下面的XAML中的所有行索引。
解决方法
网格是网格,行和列由于特定原因而编号。它就像一张方格纸切成固定数量的正方形。由于行和列的数量是固定的,因此您可以执行行和列跨越等强大功能。相反,对于可变数量的行或列,这不灵活。
如果您需要可变数量的行,或者您在设计时不断添加行,那么Grid可能不是最适合您的设计元素。或者更好的是,您可以将Grid与其他布局元素结合使用,以获得所需的灵活性。
例如,您可以将所有变量行放入单个Grid行中,现在您的网格行数不再更改。但是,您将需要一个布局元素,该元素支持可变数量的行以放入该Grid行。好吧,有很多可供选择,但有两个例如有用的是StackPanel和DockPanel。
特别是对于可变数量的行或列,布局元素DockPanel非常强大,特别是在DockPanels或其他组合中用作DockPanel时。你需要处理这个布局问题就是细分和征服!
这是DockPanel的介绍:WPF Tutorial: Dock Panel