我刚开始涉足Silverlight,对于创建UserControl
和创建同样任务的控件(例如,在Expression Blend中右键单击选择时)的区别和优缺点并不理解。
似乎选择 "Make Into Control" 只是为指定基类型创建一个新模板,而创建UserControl
则创建一个全新的基类。这正确吗?
在这个特定的例子中,我正在创建一个自定义文本框控件,仅接受数字,并将自己分成3个部分,分别存储3个值到不同的属性中,如下所示。在这种情况下,哪个最好?
我刚开始涉足Silverlight,对于创建UserControl
和创建同样任务的控件(例如,在Expression Blend中右键单击选择时)的区别和优缺点并不理解。
似乎选择 "Make Into Control" 只是为指定基类型创建一个新模板,而创建UserControl
则创建一个全新的基类。这正确吗?
在这个特定的例子中,我正在创建一个自定义文本框控件,仅接受数字,并将自己分成3个部分,分别存储3个值到不同的属性中,如下所示。在这种情况下,哪个最好?
UserControls旨在成为一个组合控件,基本上是一堆其他“控件”组合在一起,以作为单个、有凝聚力的单元工作。
另一方面,自定义控件旨在用作单个控件。想象一下框架中的基本控件,例如TextBox或Button - 如果您要实现类似的功能,则需要一个Control。(这比UserControls更不常见,特别是在WPF中,因为您可以在基类控件上使用模板来完成许多需要自定义控件的事情)。自定义Control完全是关于为单个“控件”定义新行为的。
UserControl
是合适的,但如果您的控件本质上仍然是一个 TextBox
,则应该使用“将其制作成控件”扩展现有控件。UserControl
。