[WPF] Inheritance: UserControl vs ContentControl
От: skodnik  
Дата: 10.01.11 12:23
Оценка:
Создание новых контролов под WPF/Silverlight в книгах расписано на примере создания класса, который наследуется от UserControl. Студия в данном случае поддерживает и XAML и codebehind.
Но я часто вижу другой подход: наследование от ContentControl, довешивание на него применяя стили различные панели с названием типа: x:Name="PART_xxx" затем в конструкторе или в другом месте поиск этих панелей

Panel xxxControls = this.GetTemplateChild("PART_xxx") as Panel;

if (xxxControls == null)
{
   throw new NullReferenceException("Could not find templated PART: PART_xxx");
}
xxxControls.MouseLeftButtonDown += new MouseButtonEventHandler(OnTranslateControlsMouseLeftButtonDown);

в чем профит таких извращений? UserControl прямой наследник ContentControl, поддерживает добавление елементов в дизайнтайм, etc.

Да, и кто придумал именовать PART_xxx — не первый раз вижу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.