WPF:为什么大家都喜欢网格控制?

WPF:为什么大家都喜欢网格控制?,wpf,user-interface,grid,stackpanel,Wpf,User Interface,Grid,Stackpanel,看到了WPF应用程序的各种示例,我看到了网格控件几乎可以用于任何事情,即使是只有一列或一行的最简单的事情 此外,WPF模板以空网格开始 对我来说,使用StackPanel或DockPanel不太冗长,更便于维护(考虑稍后添加一行,并且必须将+1添加到所有其他行) 为什么Grid更好或者我遗漏了什么?没有遗漏任何东西。我的应用程序中有很多网格,但不一定是顶级元素,也不一定是您描述的范围 可能很多人只是没有意识到他们可以删除初始网格,而是将自己的控件放入网格中。我认为网格成为默认元素的部分原因是它(

看到了WPF应用程序的各种示例,我看到了
网格
控件几乎可以用于任何事情,即使是只有一列或一行的最简单的事情

此外,WPF模板以空网格开始

对我来说,使用
StackPanel
DockPanel
不太冗长,更便于维护(考虑稍后添加一行,并且必须将+1添加到所有其他行)


为什么
Grid
更好或者我遗漏了什么?

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


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

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


对于网格,在一个网格“单元”中包含多个元素没有限制,这允许自由放置的设计师具有与画布相同的灵活性,但仍然具有网格(以及其他更好的布局控件,如StackPanel和DockPanel)所具有的自动布局功能包含。

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

例如,在我的一个项目中,我有一个窗口,将成为一名运输经理。我想要三个列表视图(发货、包裹、项目),我有一个带有两列的网格控件;一个包含包列表和网格拆分器,另一个包含嵌套网格和其他两个列表和网格拆分器

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


科里

两个字:明星尺码。
网格
可以根据包含内容的空间调整内容的大小,而无需明确提供容器的大小。面板控件不需要。

同意,但您只需要偶尔使用,而不是总是需要。通常你可以用DockPanel来达到同样的效果,也许效果也差不多。但是如果你想把一个窗口一分为二,比如说,你不能用DockPanel真正做到这一点。如果不做一些您可能不应该做的事情,比如绑定到父对象的ActualSize属性,就不能这样做。