微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – WPF中的MouseEnter和MouseLeave处理(使用VS2008和.net 3.5)无法按预期工作

没有图像和没有代码解释问题并不容易.对于那些感兴趣的人,我做了一个样本C#/ WPF项目,可以从 http://rapidshare.com/files/461745095/02.WPFControlEvents.rar下载

这是一个非常小的项目(45KB).问题如下(我为扭曲的描述道歉):

一个“花哨”(而且相当丑陋)的按钮包含一个堆栈面板,该面板又包含1.)标签,2.)帆布,3.)两(2)个同心椭圆,全部从左到右排列.

堆栈面板有一个MouseEnter和MouseLeave事件处理程序,它在标题栏中显示一条消息,指示鼠标是在堆栈面板上还是在堆栈面板之外.

问题是:当鼠标位于标签上方(依次包含在堆叠面板中)时,鼠标(正确地)报告为位于堆叠面板上方.当鼠标在画布上移动时(也包含在堆栈面板中),鼠标(错误地?)报告为不在堆栈面板上,但是当鼠标向右移动一点时(在两个椭圆上),在画布上,报告鼠标再次在stackpanel上.

为什么当鼠标悬停在画布上时,它被报告为不在堆栈面板上,但是当鼠标位于画面上(在画布上绘制)时,它被报告为在堆栈面板上?

谢谢你揭开这个问题,

约翰.

解决方法

您可能需要将“画布的背景”设置为“透明”.这将使其“可以测试”并报告鼠标事件.

更多信息可以在here找到,但Canvas认为空背景.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐