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

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

Когда я смотрю варианты создания проектов в Visual Studio, я вижу «WPF User Control Library» и «WPF Custom Control Library». Мне непонятно, какая разница между ними и моими поисками Google не принесли никаких достойных объяснений.

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

    На практике настраиваемые элементы управления – это то, что вы реализуете на уровне кода, в то время как вы можете использовать XAML для пользовательских элементов управления. Пользовательские элементы управления расширяют один из базовых classов управления WPF и предоставляют дополнительные функции через код, поэтому вся добавленная логика и представление должны быть реализованы внутри кода.

    Пользовательский элемент управления – это обычный элемент управления контентом, который можно расширить в некоторых частях кода, но обычно он расширяется, помещая в него другие элементы управления. Так, как отметил Кент, UserControl представляет собой совокупность других элементов управления. Это значительно ограничивает возможности пользовательского управления. Это проще в использовании, но более ограниченный, чем полный пользовательский контроль.

    Эти элементы управления имеют небольшую разницу с точки зрения времени выполнения. При создании приложения и размещении UserControl в нем дерево управления будет иметь конкретный шаблон UserControl внутри него. Поэтому, если мы рассмотрим хромой пример специализированной кнопки. Если вы используете пользовательский элемент управления, вы должны добавить кнопку внутри элемента . При использовании настраиваемого элемента управления вы, скорее всего, вывели бы элемент управления с помощью кнопки. Разница будет видна в логическом дереве.

    Хотя пользовательский элемент управления предоставит логическое дерево, подобное

    • Окно
      • CustomButton

    UserControl даст логическое дерево

    • Окно
      • CustomButtonUserControl
        • кнопка

    Таким образом, в конечном итоге UserControl является обычным ContentControl, который вы можете расширить и для которого вы можете предопределить содержимое. Пользовательский контроль обеспечивает большую гибкость по цене простоты реализации, поскольку вам нужно выполнять всю логику и взаимодействие в коде вместо того, чтобы иметь преимущество XAML.

    Хотя после всего этого я не думаю, что в шаблонах Visual Studio есть такая разница. Скорее всего, пользовательский элемент Visual Studio просто создает проект с пустым настраиваемым элементом управления, а проект User Control – это проект с пустым пользовательским элементом управления. Позднее вы можете добавлять в проект любые объекты.

    Обновить

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

    Элемент Control представляет собой какое-то поведение, которое является скином (templatable), тогда как UserControl обычно представляет собой агрегацию более высокого уровня для элементов Control , специфичную для приложения.

    Более подробная информация доступна здесь .

    Давайте будем гением компьютера.