5

看过 WPF 应用程序的各种示例,我已经看到了Grid控件用于几乎任何东西,甚至是只有 1 列或行的最简单的东西。

此外,WPF 模板以空网格开头。

对我来说,使用StackPanelorDockPanel不那么冗长并且更适合维护(考虑稍后添加一行并且必须将 +1 添加到所有其他行)

为什么Grid更好或我缺少什么?

4

4 回答 4

3

两个字:星级。这Grid使得可以将内容调整到包含它的空间,而无需明确提供容器的大小。面板控件没有。

于 2010-03-15T17:55:16.933 回答
2

我认为 Grid 成为默认元素的部分原因是它(稍微)对设计师更友好。

使用 Grid,在单个 Grid“单元格”中拥有多个元素没有限制,这允许具有自由放置的设计者具有与 Canvas 相同的灵活性,但仍然具有 Grid 的自动布局功能(以及其他更好的StackPanel 和 DockPanel 等布局控件)包含。

于 2010-03-15T15:57:49.883 回答
1

没有遗漏任何东西。我的应用程序中有很多网格,但不一定是顶级元素,也绝对不是您描述的范围。

可能很多人只是没有意识到他们可以删除初始网格,而是将自己的控件放入网格中。

于 2010-03-15T15:43:34.037 回答
1

我发现对于更精细的窗户,更容易将其分解为与其他窗户相当独立(运动和尺寸方面)的功能区域。网格允许这些区域共存于一个面板中,并允许它们定位而不考虑其他控件的位置(在某种程度上)。

例如,在我现在正在做的一个项目中,我有一个窗口将成为运输经理。我想要三个列表视图(Shipments、Packages、Items)我有一个包含两列的网格控件;一个带有 Packages 列表和一个网格拆分器,另一个带有嵌套网格,另外两个列表和一个网格拆分器。

我见过许多设计师将他们的窗口分解成这样的区域,并且使用网格以外的任何其他东西都行不通,因为没有项目间接存在的谨慎“单元格”。相当多的程序窗口采用这种设计所以我猜当他们开会并询问默认容器面板应该是什么时,网格是基于这一事实的选择。

科里

于 2010-03-15T17:32:04.450 回答