看到WPF应用程序的各种示例我已经看到使用Grid
控件几乎可以用于任何事情,即使是只有1列或行的最简单的事情。
此外,WPF模板以空网格开头。
对我来说,使用StackPanel
或DockPanel
更简洁,更便于维护(想想以后添加一行并且必须为所有其他行添加+1)
为什么Grid
更好或我缺少什么?
答案 0 :(得分:3)
两个字:明星大小。 Grid
使得可以将内容大小调整到包含它的空间,而无需为容器明确提供大小。面板控件没有。
答案 1 :(得分:2)
我认为Grid作为默认元素的部分原因是它(稍微)更加设计友好。
使用Grid,在单个Grid“单元格”中拥有多个元素没有限制,这允许具有自由放置的设计器具有与Canvas相同的灵活性,但仍具有Grid的自动布局功能(和其他更好的布局控件,如StackPanel和DockPanel)包含。
答案 2 :(得分:1)
没有遗漏任何东西。我的应用程序中有很多网格,但不一定是顶级元素,绝对不是你所描述的扩展。
可能很多人都没有意识到他们可以删除初始网格,而是将他们自己的控制权放入网格中。
答案 3 :(得分:1)
我发现,对于更复杂的窗户,更容易将其分解为其他人相当独立(移动和尺寸方面)的功能区域。网格允许这些区域在单个面板中共存,并允许它们被定位而不考虑其他控件的位置(在某种程度上)。
例如,在我是working on right now的项目中,我有一个将成为运输经理的窗口。我想要三个列表视图(Shipments,Packages,Items)我有一个带有两列的网格控件;一个带有Packages列表和一个网格分割器,另一个带有嵌套网格,另外两个列表和一个网格分割器。
我看到很多设计师将窗户打破到这样的区域,除了网格之外的其他任何东西都不起作用,因为没有间接存在项目的谨慎“单元格”。相当多的程序窗口采取这种设计,所以我猜他们开会时询问默认的容器面板是什么,网格是基于这个事实的选择。
科里