![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| 4epT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Добрый вечер! Подскажите пожалуйста как можно сделать необычный интерфейс. Вот например есть картинка (например лицо человека), и при двойном клике на какой то части лица нужно вызывать конкретную функцию ... например нажали на нос, вызвали функцию #1, на глаз #2 и так далее ...
Я пока что вижу 2 выхода: 1)Смотреть координаты куда был клик и на основе этого вызывать соответствующую функцию, но возникает проблема ... тогда изображение нельзя будет двигать. 2)Второе это разбить картинку на части, и каждая часть будет кнопкой ... но из за этого будет очень сложно получить нормальное изображение (имеется ввиду целое ...) |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
4epT, можно попробовать размещать изображение как фон, а поверх него кидать контролы. можно еще брать координаты мышки относительно окна в которое тыкает пользователь.
|
|||
|
||||
| 4epT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Ну если взять изображение как фон, и на него положить контролы, как эти контролы сделать невидимыми, но чтобы на них можно было нажимать? ведь сама суть в том чтобы мы контролов не видели, а отдельные элементы были "кнопками" ...
|
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
4epT, ну тогда просто определяй координаты мышки относительно окна. обрабатывай у формы событие MouseClick. у аргумента e есть параметры e.X и e.Y, это и есть координаты мышки относительно окна. дальше проверяй куда там юзер ткнул и обрабатывай.
|
|||
|
||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: нет Всего: 74 |
А контролам нельзя придать форму полигонов, заранее созданных?
Если было бы можно- то можно разбить программно изображение на части и из них слепить полигоны, в форме которых замутить кнопочки -------------------- Всем добра |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
4epT, вместо контролов создай собственный простой класс(RegionHandler например), который будет включать описываемую область и обработчик клика по ней. Далее произведи от того же пикчербокса свой класс, добавь в него коллекцию таких объектов RegionHandler, каждый из которых опишет, что надо делать если клик пришёлся именно на этот регион. При клике по твоему пикчербоксу проверяй на какой именно регион пришёлся клик и именно у него вызывай обработчик.
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| 4epT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
SoWa, а как можно сделать регион в форме картинки?
|
|||
|
||||
| 4epT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Скажите еще ... глупо будет разбить все изображение на квадратики и каждый квадратик запихнуть в свой Label ... и обрабатывать клик на Label и по имени узнавать на каком именно был клик ....
|
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
||||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |