何时在Silverlight中使用UserControl与Control?

Dov*_*Dov 11 silverlight user-controls controls expression-blend

我只是在Silverlight中弄湿了,并没有真正理解创建UserControl与为同一任务创建控件的差异和优缺点(就像在右键单击Expression Blend中的选择时一样)例如).

看起来选择"Make Into Control"只是为您指定的基类型创建一个新模板,而创建UserControl则创建一个全新的基类.那是对的吗?

截图http://tinyurl.com/yjsaox9

在这个特定的例子中,我正在创建一个自定义文本框控件,它只接受数字,并将自己分成3个部分,将3个值存储到单独的属性中,如下图所示.在这种特殊情况下,哪种情况最好?

截图2 http://tinyurl.com/y9x7zox

更新(附加问题):为什么我不能将模板绑定与UserControl一起使用,但我可以使用Control?这就是我认为制作UserControl可能不是正确决定的原因之一.

Ree*_*sey 8

UserControls是一个复合控件 - 基本上是一堆其他"控件"组合在一起,作为一个单一的,有凝聚力的单元.

另一方面,自定义控件旨在用作单个控件.想想框架中的基本控件,比如TextBox或Button - 如果你实现了类似的东西,你需要一个Control.(这比UserControls少见,特别是在WPF中,因为你可以在基类控件上使用模板来完成很多你需要在其他框架中使用自定义控件的东西).自定义控件就是为单个"控件"定义新行为.


小智 3

Dov,我认为您已经通过更新回答了自己的问题。当您想要制作支持模板化的控件时,自定义控件最有用。否则,当您从其他控件继承以干净地添加功能(TextBox -> PasswordTextBox)时,它们非常有用。