Когда использовать UserControl против Control в Silverlight?

Я просто не могу понять, что такое Silverlight, и я не совсем понимаю разницу и плюсы и минусы создания UserControl и создания элемента управления для той же задачи (например, когда вы щелкаете правой кнопкой мыши по выделению в Expression Blend, например).

Кажется, что выбор "Make Into Control" просто создает новый шаблон для указанного вами базового типа, тогда как создание UserControl создает совершенно новый базовый класс. Это верно?

В этом конкретном случае я создаю пользовательский элемент управления текстового поля, который принимает только цифры и делит себя на 3 раздела, сохраняя 3 значения в отдельных свойствах, как показано ниже. В этом конкретном случае, что было бы лучше?

Ответ 1

Дов, я думаю, вы ответили на свой вопрос своим обновлением. Пользовательские элементы управления наиболее полезны, если вы хотите создать элемент управления, поддерживающий шаблоны. В противном случае они полезны, когда вы наследуете от других элементов управления, чтобы полностью добавить функциональность (TextBox → PasswordTextBox).

Ответ 2

UserControls должны быть составным элементом управления - в основном связкой других "элементов управления", сгруппированных вместе, чтобы работать как единый сплоченный блок.

Пользовательские элементы управления, с другой стороны, предназначены для использования в качестве единого элемента управления. Подумайте об основных элементах управления в рамках, таких как TextBox или Button, - если вы реализуете что-то подобное, вам нужен элемент управления. (Это менее распространено, чем UserControls, особенно в WPF, поскольку вы можете использовать шаблоны для элементов управления базовым классом, чтобы выполнить немало вещей, где вам понадобятся настраиваемые элементы управления в других средах). Пользовательский элемент управления - это определение нового поведения для одного "элемента управления".

Ответ 3

Если вы считаете, что ваш элемент управления представляет собой группу из трех текстовых полей, тогда подходит UserControl, но если ваш элемент управления по существу будет TextBox, тогда вы должны расширить существующий элемент управления с помощью "Make into control". "

Похоже, вам нужен UserControl для меня.