Приложение, над которым я работаю, будет использоваться для создания диаграмм данных, содержащихся в базе данных. Сейчас объектами на диаграмме манипулируют с помощью «панели управления» - по сути, это список объектов и PropertyGrid для редактирования значений. Пользователи также хотели бы иметь возможность взаимодействовать с объектами, используя взаимодействие с мышью - такие как захват угла графика и перетаскивание, чтобы развернуть / свернуть его, щелкнуть число и получить текстовое поле для редактирования или щелкнуть правой кнопкой мыши что-то, чтобы получить меню возможных взаимодействий.
Диаграмма рисуется с помощью GDI + в метафайле (требование), который затем рисуется в нарисованной пользователем форме.
Я не совсем уверен, как это реализовать. У меня была пара идей:
- Создайте несколько пользовательских элементов управления, которые накладываются на графике диаграммы. Каждый элемент управления может быть связан с конкретным объектом или свойством объекта на диаграмме и обновлять эти значения в зависимости от того, как пользователь взаимодействовал с ним.
- Просто следите за тем, где находятся объекты, и когда пользователь что-то делает с мышью, бегите по списку и выясняйте, какой объект должен находиться в месте расположения мыши, и идите оттуда.
Мне интересно, как вы, ребята, реализовали бы это, и буду очень признателен за некоторые предложения. Спасибо!