0
C#을 사용하여 Form 안에있는 pictureBox 내부에 투명한 배경으로 정사각형 이미지를 그립니다. 나는 그것의 보이는 부분을 가지고 마우스 이벤트를 포착하기를 원하지만, 그것은 전체 표면을 가진 이벤트를 포착한다는 것입니다.C#에서 볼 수있는 픽셀 만 마우스 이벤트를 캡처하기 위해 pictureBox 안에 반투명 이미지를 만들려면 어떻게해야합니까?
C#을 사용하여 Form 안에있는 pictureBox 내부에 투명한 배경으로 정사각형 이미지를 그립니다. 나는 그것의 보이는 부분을 가지고 마우스 이벤트를 포착하기를 원하지만, 그것은 전체 표면을 가진 이벤트를 포착한다는 것입니다.C#에서 볼 수있는 픽셀 만 마우스 이벤트를 캡처하기 위해 pictureBox 안에 반투명 이미지를 만들려면 어떻게해야합니까?
이 정상의 SizeMode 및 크기 조정을 위해 작동합니다
if (new Bitmap(((PictureBox)sender).Image).GetPixel(e.X, e.Y).A >= 8)
// do stuff
그렇지 않으면 당신은 아마 픽셀 위치를 얻기 위해 약간의 계산을해야 할 것입니다.
이 방법이 효과가 있다면, 모든 마우스 이벤트에 비트 맵을 새로 추가하는 대신 변수에 저장하는 것도 고려해야합니다.
편집 : 거의 완전히 투명한 픽셀을위한 공간을 남기기 위해 0 대신 델타 값으로 8을 사용했지만 물론 그렇지 않아도됩니다.
방금 시도해 보니 완벽하게 작동했습니다. 델타는 내 특별한 경우에 매우 유용했습니다. 감사! –
더 높은 DPI에서도 이것이 올바른지 궁금합니다. 어쩌면 누군가가 그것에 대해 논평 할 수 있습니다. – Neme