2010-01-25 24 views
11

在HTML中,通用容器控件是DIV。它本身并没有做任何事情,但它是一个很好的地方。WPF:什么是通用容器控件?

同样在WinForms中,通用容器控件是面板。再次,这是我将用作占位符来稍后加载其他控件的内容。

WPF应该用什么?

回答

15

一些比较常用的容器是:

Grid
StackPanel
DockPanel
WrapPanel
Canvas

MSDN Panels Overview见。

+0

要增加这一点,这一切都取决于你需要用这些后来加载的控件。 I. e。他们应该有什么样的布局等等。在其中一种情况下,我使用了Grid。如果你需要加载多个控件,DockPanel可能不是那么好。 – Joey 2010-01-25 01:54:51

+0

在这种情况下,我希望尽可能少的假设。任何布局都应该通过加载控件来处理,所以一个控制限制是有意义的。 – 2010-01-25 02:09:01

+0

不是我期待的简单答案,但那个链接是一个非常好的阅读。 – 2010-01-25 02:11:08

16

我认为最接近你要找的是ContentControl。它没有自己的布局,也没有默认的用户界面(除非你将它模板化来完成其中的一个或两个),但可以采用任何对象,因为它的属性(WPF UIElement或其他),并通过一个CLR对象提供任何UI DataTemplate已分配给其ContentTemplate属性。在这方面,它提供了一个注入其他内容的好地方(如HTML中的div)。它也恰好是许多标准内置控件的基类:Button,ListBoxItemUserControl,Window。因为它们不能被模板或已通过绑定设置儿童

WPF面板不占位符以及工作,除了在那里它们被包含在处理注入绑定的内容其他控制的情况下,如ItemsControl - ItemsPresenter - ItemsPanel关系。