没有图像和没有代码解释问题并不容易.对于那些感兴趣的人,我做了一个样本C#/
WPF项目,可以从
http://rapidshare.com/files/461745095/02.WPFControlEvents.rar下载
这是一个非常小的项目(45KB).问题如下(我为扭曲的描述道歉):
一个“花哨”(而且相当丑陋)的按钮包含一个堆栈面板,该面板又包含1.)标签,2.)帆布,3.)两(2)个同心椭圆,全部从左到右排列.
堆栈面板有一个MouseEnter和MouseLeave事件处理程序,它在标题栏中显示一条消息,指示鼠标是在堆栈面板上还是在堆栈面板之外.
问题是:当鼠标位于标签上方(依次包含在堆叠面板中)时,鼠标(正确地)报告为位于堆叠面板上方.当鼠标在画布上移动时(也包含在堆栈面板中),鼠标(错误地?)报告为不在堆栈面板上,但是当鼠标向右移动一点时(在两个椭圆上) ,在画布上,报告鼠标再次在stackpanel上.
为什么当鼠标悬停在画布上时,它被报告为不在堆栈面板上,但是当鼠标位于画面上(在画布上绘制)时,它被报告为在堆栈面板上?
谢谢你揭开这个问题,
约翰.
最佳答案 您可能需要将“画布的背景”设置为“透明”.这将使其“可以测试”并报告鼠标事件.
更多信息可以在here找到,但Canvas默认为空背景.