#.net #wpf #silverlight #windows-phone-7 #controls
#.net #wpf #silverlight #windows-phone-7 #элементы управления
Вопрос:
В WPF (или silverlight) Когда следует создавать подкласс Control и когда следует создавать подкласс Panel?
Каковы подходящие сценарии для каждого из них?
Комментарии:
1. Первоначальная мысль: получить более настраиваемую панель или элемент управления.
2. Мой ответ на ваш последний пост объясняет это.
3. @ lukas : Спасибо, я это видел. Я опубликовал это, чтобы упростить вопрос. Последний вариант получился немного чересчур сложным.
Ответ №1:
Я использую пользовательские элементы управления, когда у меня есть жесткая структура — это означает, что я могу разместить именно то, что я хочу в Xaml, даже если я мог бы скинуть элемент управления, используя несколько определений Xaml, которые выглядят совершенно по-разному. Примером может служить элемент управления электронной таблицей, который я написал. Одно определение Xaml имеет определенный набор цветов и расположение меню и кнопок, другое полностью отличается. Я всегда знаю, что я выкладываю, когда использую пользовательский элемент управления.
Я использую пользовательские панели, когда у меня более динамичное расположение, где мне нужно переопределить MeasureOverride и ArrangeOverride, а они часто виртуальные, что означает, что я создаю экземпляры только того, что видно. Примером пользовательской панели является та, которую я написал, которая отображает сотни изображений. Вы можете изменить макет (например, стопку страниц, по 2 рядом друг с другом, или выложенных плиткой, чтобы поместилось как можно больше) и уровень масштабирования. Я читаю и отображаю только те изображения, которые видны на пользовательской панели, и для их просмотра есть полоса прокрутки.
Большинство стандартных панелей, таких как Grid, StackPanel и т.д., Являются пользовательскими панелями, созданными Microsoft. Это должно дать вам представление о том, для чего используются пользовательские панели — для упорядочивания неизвестного количества дочерних элементов по определенному шаблону. Пользовательские элементы управления, с другой стороны, предназначены для разработки определенного пользовательского интерфейса, обычно такого, который можно создать с помощью стилей Xaml.
Ответ №2:
Одно из соображений заключается в том, что обычно пользовательский элемент управления создается в WPF / Silverlight только тогда, когда требуется новое поведение. Если все, что вы хотите изменить, это внешний вид, обычно это возможно с помощью стилей, шаблонов элементов управления, …