没有图像,没有代码,很难解释问题。对于那些感兴趣的人,我制作了一个示例 C#/WPF 项目,可以从http://rapidshare.com/files/461745095/02.WPFControlEvents.rar下载
这是一个非常小的项目(45KB)。问题如下(对于扭曲的描述,我深表歉意):
一个“花哨”(而且相当丑陋)的按钮包含一个堆栈面板,该面板又包含 1.) 标签,2.) 画布,3.) 两 (2) 个同心椭圆,全部从左到右布置。
堆栈面板有一个 MouseEnter 和一个 MouseLeave 事件处理程序,它在标题栏中显示一条消息,指示鼠标是在堆栈面板上还是在堆栈面板之外。
问题是:当鼠标在标签上(反过来包含在堆栈面板中)时,鼠标(正确地)报告为在堆栈面板上。当鼠标移动到画布上(也包含在堆栈面板中)时,鼠标(错误地?)报告为不在堆栈面板上,但是当鼠标向右移动一点时(在两个椭圆上,位于画布上),则报告鼠标再次位于堆栈面板上。
为什么当鼠标在画布上时它被报告为不在堆栈面板上,但当鼠标在椭圆(画在画布上)上时它被报告为在堆栈面板上?
感谢您阐明问题,
约翰。