Элемент управления WinForms для редактирования карты изображений - PullRequest
4 голосов
/ 24 июня 2009

В приложении WinForms мне нужно иметь возможность интерактивно редактировать «горячие» области поверх изображения, чтобы впоследствии использовать их в качестве карты изображений.

Я пытался объединить UserControl с несколькими плавающими прямоугольниками (Microsoft.VisualBasic.PowerPacks ftw) поверх PictureBox, но результат был не таким уж приятным, особенно с проблемами мерцания и обновления при перемещении элементов управления.

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

Ответы [ 2 ]

2 голосов
/ 24 июня 2009

У меня есть такой элемент управления ... без поддержки дизайнера

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

  1. стандартный иммунитет от любых последствий, никакой ответственности за любой ущерб, случайный или иным образом ....
  2. если вы найдете ошибку и исправите ее, дайте мне знать, как

MaLio

2 голосов
/ 24 июня 2009

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

При включенной двойной буферизации большая часть (если не все) вашего мерцания должна исчезнуть.

В вашем InitializeComponent пользовательского элемента управления и формы:

this.SetStyle(ControlStyles.AllPaintingInWmPaint |
              ControlStyles.UserPaint |
              ControlStyles.DoubleBuffer,true);

Более подробная информация доступна в этой статье.

...