我有一个包含透明区域的png,我把它设置为图像标签,但是当它在图像的不透明部分上方时,如何将光标设置为手?
由于 贝
答案 0 :(得分:4)
要执行此操作,您需要查看位图本身。 WPF的命中测试机制认为任何涂有“透明”画笔的像素即使看不见也仍然可以点击。这通常是一件好事,但会妨碍你想要做的事情。因为.png使用透明画笔进行绘画,所以在进行点击测试时,整个.png都会被视为绘画。
您需要在MouseMove
事件处理程序中执行以下操作:
HitTestResult
,请检查它是否为Image
,如果是,则检查透明像素是否在鼠标下Cursor
值确定鼠标是否在图像的透明像素上:
e.GetPosition(image)
)BitmapSource.CopyPixels
将1像素矩形复制到数组中(即只有鼠标所在的单个像素)