Элемент управления Microsoft .NET Chart - выберите точки с помощью прямоугольника

Данные со значениями X и Y отображаются в виде точечной диаграммы с помощью элемента управления Chart .NET 4.0. Я считаю, что управление диаграммами Microsoft было получено от Дандаса.

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

Есть ли способ переопределить метод масштабирования, чтобы создать выделение, а не увеличивать масштаб?

Можно ли разместить на существующей диаграмме наложение, которое будет улавливать щелчки мыши и отображать прозрачный прямоугольник?

Обычно мне нравится публиковать примеры кода со своими вопросами, но в этом случае я не знаю, с чего начать. Ссылки на правильное место в документации, другие учебные пособия или примеры кода приветствуются.


person DarwinIcesurfer    schedule 03.12.2012    source источник


Ответы (1)


Не знаю, нужна ли вам еще помощь с этим, у меня нет примера кода, но это в значительной степени то, что я бы попробовал:

  1. Используйте тест попадания, чтобы зафиксировать значения x/y события MouseDown и сохранить их в переменной.
  2. Захватите и сохраните значения x/y события MouseUp аналогичным образом.
  3. По-прежнему в событии MouseUp нарисуйте свой прямоугольник, используя LineAnnotations с двумя значениями x/y. Затем опросите каждую точку данных в вашей серии, чтобы увидеть, находится ли она в области, ограниченной прямоугольником, и добавьте индекс точки данных в массив/список, если это так. После этого у вас будет список всех точек внутри перетаскиваемого прямоугольника.

NB вам нужно будет уничтожить аннотации линий в какой-то момент, возможно, когда вы начнете перетаскивать новый прямоугольник.

Надеюсь это поможет. Ник

person Nick    schedule 21.03.2013