Определение горячих точек карты в C#

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

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

Программа включает меню данных, которое содержит элемент «Сделать точку доступа». Когда вы запускаете этот элемент, вы можете щелкнуть и перетащить, чтобы определить точку доступа. Затем программа записывает код, необходимый для определения этой точки доступа в окне вывода, как показано на рисунке выше. Затем вы можете скопировать и вставить этот код в программу для создания новых горячих точек.

Чтобы упростить использование программы в «нормальном» режиме, я устанавливаю для свойства Data menus Visible значение False во время разработки, поэтому вы обычно не видите это меню .

Как ни странно, даже если меню «Данные» скрыто, вы все равно можете получить доступ к элементу «Сделать точку доступа», нажав комбинацию клавиш Ctrl + H. Если вы хотите, чтобы элемент меню не использовался, хотя его не видно, вы можете установить его свойство Enabled в False. Или даже лучше, вы могли бы иметь обработчик события Load формы, который устанавливает свойство Enabled элемента меню, равное свойству Visible в меню Data.

Следующий код выполняется, когда вы выбираете команду «Сделать Hotspot» меню «Данные».

Этот код готовит программу для создания точки доступа. Сначала он удаляет обработчики событий MouseMove и MouseClick, которые обычно имеют дело с перемещением пользователя и нажатием на горячую точку. Затем он устанавливает новый обработчик событий MouseDown, чтобы начать создание точки доступа. Он также изменяет курсор управления PictureBox на перекрестье.

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

Этот код сохраняет начальное местоположение мыши в переменной HotspotStart. Он удаляет обработчик событий MouseDown и устанавливает обработчики событий MouseMove и MouseUp. Он заканчивается созданием временной копии исходного изображения, создавая объект Graphics, связанный с изображением, и отображающий изображение.

Когда пользователь перемещает мышь, выполняется следующий код.

Этот код сохраняет новое местоположение мыши в переменной HotspotEnd. Затем он копирует исходную карту на временное изображение и рисует прямоугольник, чтобы отобразить выбранную область.

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

Этот код удаляет обработчики событий hotspot MouseMove и MouseUp и переустанавливает исходные обработчики событий MouseMove и MouseClick , Он сбрасывает изображение карты и курсор и повторно отображает карту.

Код заканчивается отображением кода, необходимого для создания этой точки доступа в окне вывода.

Источник: http://csharphelper.com/blog/2016/07/define-map-hotspots-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *