小编İsm*_*rış的帖子

如何在c#中创建可点击的不规则形状区域

我有一个像心脏或任何随机形状的不规则形状的图片.我可以在视觉上使它透明,但我需要让它只在形状区域上可点击.我听说我应该使用"Region",但我无法弄清楚如何.

我试图搜索所有非空,透明或空的像素,并用它们创建一个点数组,但我无法创建/重塑当前控制区域.我正在尝试制作一个自定义控件,你可以选择一个按钮或图片,它们是不规则形状并且彼此靠近.

这是我正在处理的事情: 在此输入图像描述

正如您在图片中看到的,有8个不同的部分(假设右侧和左侧组合).正如你所看到的,它们彼此接近,其中一些甚至适合其他人之间的空白区域.

我的目标是,例如,如果我点击Pectorals(图中的红色区域),它将变为彩色版本,并且会运行一堆其他代码.

问题是,默认情况下,当我们添加任何带有a的图片时PictureBox,它将Rectangle从它的边界开始围绕该图片创建.因此,如果我将两张图片(如图所示)放在一起,则一个空区域会阻止我点击另一张图片.

ClickEvent由于这个问题,它也引发了错误的对象.

我正在尝试设置"提升事件区域",我假设我们Graphic Region在图片存在的地方调用它.我可以用一个循环来收集像素的位置,该循环确定该图片的哪个坐标具有"颜色"(意味着它是图片的一部分,我想要点击的区域)但是我不能用该数据限制该区域.

我正在努力实现的一个例子:https://www.youtube.com/watch?v = K_JzL4kzCoE

做这个的最好方式是什么?

c# controls transparency region winforms

6
推荐指数
1
解决办法
3751
查看次数

标签 统计

c# ×1

controls ×1

region ×1

transparency ×1

winforms ×1