仅在.png图像的非透明部分触发PointerEntered事件?

时间:2014-02-03 19:53:47

标签: c# windows-store-apps visual-studio-2013

我想在不规则的.png图像上添加C#(创建一个Windows 8应用程序)中的鼠标悬停事件,当它的主图像区域(不是整个框或透明区域)悬停时,其不透明度应该会改变。

我能为此获得一个有用的代码吗?

1 个答案:

答案 0 :(得分:0)

PNG 的Alpha通道有256级。门槛在哪里?总透明度还是相对透明度?后者还取决于颜色和当前背景。

我想说的是栅格(每像素)方法可能无法产生预期效果。 在某些情况下,最好有一个描述相关区域的多边形,并检查鼠标位置是否在该多边形的内部或外部。

通过这种方式,设计师可以排除他可能赎回的非常微弱的区域,反之亦然,包括否则将被排除在外的区域。

这两种方法之间的折衷方案是使用每像素只有1位的碰撞掩码, 0不关心1 < EM>相关的的。该掩模将由设计人员手动绘制,并用于检测 PNG 内的像素是否与鼠标相关。