WP7 - 控件 - 决定继承哪个类的标准 - UserControl或ContentControl或Control类

时间:2010-07-28 15:30:11

标签: c# silverlight user-controls controls

我正在为WP7应用程序开发控件。我知道我可以通过继承UserControl类(派生自Control类)来快速创建控件。此外,这些控件无法自定义,即与控件相关的所有属性都是用户控件中的编码 - 它们不能在xaml等中覆盖。但有人可以分享最佳实践/情况,何时直接从控制类 vs ContentControl / ItemControl类 vs UserControl类(我错过了其他任何选项吗?)?

感谢。

1 个答案:

答案 0 :(得分:0)

以下是您提到的每种控件类型的简要说明:

1.ItemsControl - 通常在你想拥有一个像ListBox,TreeView等项目的控件时使用。从ItemsControl派生的最重要的部分之一是覆盖:

GetContainerForItemOverride

IsItemItsOwnContainerOverride

PrepareContainerForItemOverride

以下是一个例子:

http://www.silverlightshow.net/items/How-to-inherit-from-ItemsControl-and-create-a-UniformGrid-with-containers.aspx

请注意,该示例未使用最新的Silverlight版本,但它详细说明了如何实现自定义控件。

2.Control - 当你想实现一个没有Content或Items属性的简单控件时,例如你可以从Control派生。

3.ContentControl - 当您需要在控件中放置一些内容时。例如按钮内容。这取决于你的需要什么是基类的选择。

您还可以查看SilverlightShow提供的其他教程与“如何实现自定义控件”相关联。

我希望这会回答你的问题。