Сделайте карту крупным планом в C#

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

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

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

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

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

Затем код копирует небольшое изображение карты в растровое изображение MapPatch. Он заполняет эллипс в центре патча и использует MakeTransparent, чтобы сделать этот эллипс прозрачным.

Далее код копирует оригинальную маленькую карту в модифицированную версию, чтобы удалить предыдущий крупный план. Он копирует кусок большой карты на измененный.

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

Источник: http://csharphelper.com/blog/2015/07/make-a-closeup-map-in-c/

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

Add a Comment

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