@Looking

Как определить цвет пикселя на форме?

Приветствую. Не получается определить цвет пикселя по которому кликнули.
Сама фигура отрисовывается таким способом:
SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red);
            Graphics formGraphics;
            formGraphics = this.CreateGraphics();
            formGraphics.FillEllipse(myBrush, new Rectangle((int)drawX, (int)drawY, figW, figH));

Мне надо определить, что кликнули именно на нее.
Если делать как в этом ответе stackoverflow.com/questions/753132/how-do-i-get-th... то выводит цвет фона формы, а не фигуры.
  • Вопрос задан
  • 2284 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Sushkov
">alert("yohoho")
Попробуй так:
Bitmap bmp;
Color clr;

public Image CaptureWindow()
{ 
Graphics g = Graphics.FromImage(bmp)
g.CopyFromScreen( , , , , ); //параметры подставь как нужно
return bmp;
}
clr = bmp.GetPixel(X, Y);
Ответ написан
Nipheris
@Nipheris Куратор тега C#
1) если хотите проверить, что кликнули на фигуру - лучше сделайте это с помощью уравнения эллипса;
2) если все-таки нужен цвет пикселя - лучше делайте всю отрисовку в отдельный Bitmap, его потом выводите на форму (с помощью контрола Image, например), и ИЗ НЕГО потом считывайте цвет при клике по контролу. Так будет меньше сюрпризов, чем заморачиваться с экраном;
3) внимательно следите, относительно чего считаются координаты, с которыми вы работаете - относительно угла экрана, формы или клиентской области формы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы