Здравствуйте!
Подскажите, пожалуйста, начинающему.
Есть канва (наследник ScrollableControl), на ней
графические элементы. Элементы можно выделять и премещать.
Я реализовал возможность выделения нескольких элементов на канве
(группы), но к сожалению, никак не добьюсь, чтобы юзер мог,
нажав и держа левую кнопку мыши на одном из выделенных элементов,
переместить всю группу (перемещается лишь элемент под курсором)

.
Заранее спасибо.
>>Я реализовал возможность выделения нескольких элементов на канве (группы), но к сожалению, никак не добьюсь, чтобы юзер мог, нажав и держа левую кнопку мыши на одном из выделенных элементов,переместить всю группу (перемещается лишь элемент под курсором)
У тебя скорее всего есть отдельный класс, который занимается перетаскиванием/ресайзом элементов, так? Когда ты выделил один элемент он у тебя устанавливается в качестве текущего. С ним впоследствии и идет работа. Т.е. no problem. При множественном выделении у тебя уже не один target, а несколько. Т.е. нужна коллекция target'ов. Причем, если ты правильно реализовал логику перемещения, то она тебе, скорее всего позволит, пробегаясь по всем target'ам коллекции, менять их позицию. Я сам в подобных ситуациях расчитываю "дельту" от текущего положения курсора и "кликнутого". Соответственного для каждого target'a эта "дельта" будет одинакова (но различна между target'aми) и все должно быть в шоколаде. Во всяком случае у меня реализация этой фичи не вызвала каких-либо особенных трудностей.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение