Составление единого ориентира для нескольких NPlots или альтернативного решения - PullRequest
1 голос
/ 08 февраля 2010

Я использую библиотеку графиков NPlot, чтобы нарисовать несколько графиков, иллюстрирующих колебания сигнала. Графики вставляются один под другим в поточную панель 1. Ось X - это время. Y - значение сигнала. Я добавил трекбар внизу, вдоль оси x. Когда пользователь перемещает трекбар, значение каждого сигнала отображается где-то (относительно позиции трекбара).

Все это уже работает.

Меня попросили добавить визуальный способ, чтобы проиллюстрировать точное время, когда находится трекбар. Им нужна какая-то вертикальная линия, которая бы двигалась вместе с трекбаром по всем Nplots. Однако они открыты для альтернатив.

Я пытался нарисовать линию, но ее трудно нарисовать относительно положения трекбара. Также это заканчивается тем, что его рисуют за Nplots.

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

На данный момент я открыт для любых "готовых" предложений или исправлений в моей реализации. Я самоучка в C #, поэтому я не делал ничего подобного раньше.

Пожалуйста, помогите!

РЕДАКТИРОВАТЬ: я получил что-то немного лучше, используя метку с рамкой, растягивая ее до высокой и имея ширину 1. Это создает линию, которая проходит над всеми другими элементами управления. Теперь моя самая сложная задача - вычислить положение указателя трекбара, чтобы линия соответствовала ему ...

1 Ответ

0 голосов
/ 17 февраля 2010

После долгих потрясений я обнаружил, что единственный способ нарисовать линию поверх всех других элементов управления - НЕ использовать Drawline Graphics, поскольку элементы управления, расположенные сверху, не были прозрачными и я не мог получить доступ к их графическому компоненту был импортированный элемент управления, а не класс .NET).

В итоге я выбрал решение EDIT, взял метку с рамкой и установил ширину равной 1, создав вместо строки простую линию.

Формула положения потребовала много тонкой настройки, способ был рассчитать (оценить) ширину между двумя отметками трекбара и добавить крошечное смещение для самого элемента управления. Используя свойство Value указателя отслеживания, я мог бы рассчитать положение метки / строки так, чтобы оно следовало за указателем трекбара. Иногда образуется незначительное смещение, которое плохо видно невооруженным глазом.

...