Создать Custom Control в Silverlight 5.0
Создать Custom Control в Silverlight 5.0
Общее описание задачи.
Для рисования полок на магазинах с расстановкой товаров требуется создать 3 контрола:
* Торговое оборудование(стеллаж, боннета, паллета, крючковые полки)
* Подвес(полка, крючки и т.п.)
* Секция товаров
Видео пример уже работающего решения можно посмотреть по ссылкеhttp://www.youtube.com/watch?v=dbLX4PMTMWI (начиная с 1 минуты 51 секунды открывается стеллаж). При необходимости для ознакомления могу предоставить доступ.
Приблизительный пример использования можно посмотреть на http://pastebin.com/pGKJKCYp
Описание бизнес-задачи для понимания того, зачем эти контролы нужны могу рассказать по скайпу.
Ниже подробнее.
Торговое оборудование - это некий контейнер, который говорит лишь о том, в какой области возможно будет располагать полки(подвесы)
Свойства:
1. Ширина
2. Высота
3. Цвет фона
4. Метод "Получить картинку всего стеллажа с товарами"
Подвес
Свойства:
1. Отступ от низа торгового оборудования
2. Высота полки
3. Тип подвеса: полка, боннета, крючки, паллета.
4. Прижатие внутреннего контента(работает для подвеса типа "полка"): справа, слева, растянуть по всей длине.
5. Координаты расположения крючков(для типа "Крючки")
6. Глубина
7. Ширина
8. Цвет фона
События:
1. KeyPressed
2. MouseClick
Секция товаров
Свойства:
1. Цвет заливки
2. Фотография в единицу товара
3. Кол-во товара по горизонтали(фейсинг по горизонтали)
4. Кол-во товара по вертикали(фейсинг по вертикали)
5. Отступ между товарами внутри секции товаров по горизонтали
6. Отступ между товарами внутри секции товаров по вертикали
7. Положение товара внутри секции(Up,Down,Left,Right)
8. Высота единицы товара в секции
9. Ширина единицы товара в секции
10. Глубина единицы товара в секции
11. Название товара
12. Tooltip товара.
13. Ограничение товара по глубине.
14. Наложенный рисунок на товар(перечеркивание, заштриховывание)
15. Прозрачность
16. Цвет Border элемента секции
События:
1. KeyPressed
2. MouseClick
3. MouseDrag
Важно:
свойства должны быть DependencyProperpy, хотя в контроле по другому и не получится насколько мне известно.