Подтвердить что ты не робот

Разница между пользовательским управлением и библиотекой пользовательского контроля

Я работаю над созданием пользовательского элемента управления датой/временем в WPF с использованием С# 2008. Мой первый пользовательский элемент управления. Я также использую книгу Мэтью Макдональда "Pro WPF в С# 2008". В этой книге он настоятельно рекомендовал создать пользовательский элемент управления с использованием шаблона проекта библиотеки пользовательского контроля WPF; поэтому я последовал его предложению. Я закончил писать код, который будет входить в то, что я думаю как файл с кодом. Теперь я готов написать XAML.

Единственная проблема: я только что обнаружил, что нет соответствующего файла .xaml? Итак, я не понимаю, почему использование проекта WPF Custom Control Library лучше или предпочтительнее при написании пользовательского элемента управления?

4b9b3361

Ответ 1

Пользовательский контроль и настраиваемый элемент управления решают две совершенно разные проблемы.

UserControls предназначены для компоновки нескольких элементов управления WPF вместе, чтобы создать набор функций, построенных из других элементов управления. Это часто используется для составления части окна или экрана, чтобы организовать вашу разработку, позволяя группировать несколько элементов функциональности в один "контроль". Например, если вы хотите создать элемент управления для редактирования пользователя, который предоставил текстовые поля для имени и фамилии, возраста и т.д., Один UserControl можно было бы удалить в окно и связать с экземпляром пользователя, чтобы изменить это. (В этом случае вы используете стандартные элементы управления, такие как TextBox, для "компоновки" элемента управления для более сложной цели.)

Однако CustomControl предназначен для нового элемента управления. Обычно это будет замена встроенного элемента управления (который нельзя было бы переделать с помощью шаблонов). Я обнаружил, что потребность в CustomControls на самом деле довольно редко встречается в WPF, поскольку параметры шаблона WPF и прикрепленные свойства позволяют вам делать почти что угодно со стандартными элементами управления, как только вы их полностью изучите.

Ответ 2

Я бы также добавил, если вы намереваетесь наследовать свой контроль, то использование usercontrol будет усложнять ситуацию. Например, если создать базовый пользовательский контроль, который имеет макет, определенный в Xaml, инфраструктура WPF не позволит вам наследовать этот элемент управления и использовать Xaml для определения макета для подкласса. В dotnet 3.5 Управление Xaml не может наследовать от другого элемента управления Xaml