Разница между пользовательским контролем и библиотекой пользовательских элементов управления - PullRequest
18 голосов
/ 07 июня 2010

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

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

Ответы [ 2 ]

29 голосов
/ 08 июня 2010

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

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

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

1 голос
/ 02 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...