2011-06-09 61 views
2

在WPF(或silverlight)什么时候应该创建一个Control的子类,什么时候应该创建一个Panel的子类?什么时候应该创建一个Control的子类,何时应该创建一个Panel的子类?

他们每个人的拨款情况是什么?

+0

初步想法:获得更加定制的面板或控件。 – Shanadas 2011-06-09 04:46:23

+1

我对你最后的帖子有所解释。 – 2011-06-09 05:12:53

+0

@卢卡斯:谢谢,我看到了。我发布了这一个让问题更简单。最后一个有点太复杂了。 – CuiPengFei 2011-06-09 14:16:13

回答

3

我使用自定义的控件时,我有一个刚性结构 - 这意味着我可以布局正是我想在XAML ,即使我可能通过使多个Xaml定义看起来完全不同来控制控制。一个例子是我写的电子表格控件。一个Xaml定义具有一定的菜单和按钮的颜色和布局,另一个则完全不同。我总是知道我在使用自定义控件时所布置的内容。

我使用自定义面板,当我有一个更有活力的安排,我需要覆盖的MeasureOverride和ArrangeOverride,而这些往往是虚拟的,也就是说,我只实例什么是可见的。自定义面板的一个例子是我写的一个显示数百个图像的例子。你可以(通过侧例如,一个堆栈的页面,2侧,或平铺,以便尽可能多地将适合)改变布局和缩放级别。我只读并显示在自定义面板可视的图像,并有一个滚动条,通过他们进行平移。

大多数标准面板,如Grid,StackPanel等都是微软写的自定义面板。这应该让你知道自定义面板的用途 - 以特定模式排列未知数量的子元素。另一方面,自定义控件用于设计特定的用户界面,通常可通过Xaml样式进行换肤。

2

其中一个考虑因素是,您通常只会在需要新行为时才在WPF/Silverlight中创建自定义控件。如果你想改变是外观,这通常可以使用样式,控制模板,...

相关问题