TWi*_*ars 7 wpf transparency cursor wpf-4.0
我有一个包含透明区域的png,我将它设置为图像标签,但是当它在图像的不透明部分上方时,如何将光标设置为手?
谢谢托尼
为此,您需要查看位图本身。WPF 的点击测试机制认为使用“透明”画笔绘制的任何像素即使不可见,仍然可单击。这通常是一件好事,但会妨碍您尝试做的事情。由于 .png 使用透明画笔进行绘制,因此在进行命中测试时,整个 .png 被视为已绘制。
您需要在MouseMove
事件处理程序中执行以下操作:
HitTestResult
返回的每个像素,检查它是否是一个Image
,如果是,则鼠标下方是否有透明像素Cursor
根据鼠标悬停的位置确定一个值要确定鼠标是否位于图像的透明像素上:
e.GetPosition(image)
)BitmapSource.CopyPixels
将 1 像素矩形复制到数组中(即仅鼠标悬停的单个像素)