Различия CustomControls и UserControls в WPF

wpf controls

WPF имеет 2 подхода к созданию собственных контролов: CustomControl'ы и UserControl'ы. В этой статье я попытаюсь привести список характеристик для каждого из подходов чтобы помочь Вам сделать правильный выбор для Вашего проекта.

UserControl - композиция

  • Представляет собой композицию существующих контролов в группу для облегчения повторного использования.
  • Содержит XAML и C#-код.
  • Не может менять внешний вид с помощью стилей и шаблонов.
  • Наследуется от UserControl

UserControl

Это пример RGB контрола для отображения цвета. XAML код содержит композицию 3 текстовых полей и поля для отображения цвета. Вся логика работы контрола содержится в CS файле.

CustomControl - расширение существующих контролов

  • Расширяет функционал существующих контролов.
  • Содержит файл кода и стиль по умолчанию, определенный в файле Themes/Generic.xaml.
  • Может быть стилизован произвольным образом.
  • Рекомендованый подход для построения библиотеки компонент.

CustomControl

Пример контрола (для выбора числа) с кнопками вверх/вниз. Это расширение обычного текстового поля. Внешний вид может быть легко изменен, если понадобится, например, отображать кнопки слева.