在WPF / XAML中,每个容器控件都应包含一个布局控件吗?

在XAML中设计WPF应用程序UI时,每个容器类型控件都应包含一个布局控件来容纳所有子控件吗?

以一个分组框为例.我可以直接将控件放置到组框上,也可以使用布局控件并将布局控件放在组框内,然后在其中放置控件.

我可以从后者中看到好处,因为布局控件代表了一组关于子代行为方式的明确定义的规则.但是,这样做时,我的XAML树开始深深嵌套,并且导航起来有些困难.

鉴于此,最佳做法是始终使用布局控件,还是在没有这种情况的情况下将控件放在组框和选项卡项中完全可以接受?如果有的话,这将带来什么负面影响?

解决方法:

使用“布局”面板不会产生负面影响,因为即使您未指定一个面板,VisualTree中还是有一个默认面板.如果您不明确使用一个,则XAML可能看起来更干净.

大多数ItemsControl都有一个StackPanel作为默认布局.因此,从根本上来说,这是一个问题,即您是否希望使用StackPanel行为来安排子项?

上一篇:在Silverlight xaml中是否有一个等效的measurestring?


下一篇:如何在XAML中从DataTemplate引用匹配的对象?