没有图片和代码的情况下很难解释问题。如果您感兴趣,我已经制作了一个示例C#/WPF项目,可以从http://rapidshare.com/files/461745095/02.WPFControlEvents.rar下载。
这是一个非常小的项目(45KB)。问题如下(对于曲折的描述,我表示歉意):
一个“花哨”(而且相当丑陋)的按钮包含一个堆栈面板,该面板依次包含1.)标签,2.)画布,3.)两个同心椭圆,所有这些都从左到右排列。
堆栈面板有一个MouseEnter和一个MouseLeave事件处理程序,用于在标题栏中显示消息,指示鼠标是否在堆栈面板上方或其外部。
问题是:当鼠标位于标签上时(转而包含在堆栈面板中),报告鼠标正在堆栈面板上方(正确)。当鼠标移动到画布上时(也包含在堆栈面板中),鼠标被错误地报告为未在堆栈面板上方,但是当鼠标稍微向右移动一点(在画布上的两个椭圆上),鼠标又被报告为在堆栈面板上方。
为什么当鼠标在画布上时,它被报告为不在堆栈面板上方,但是当鼠标位于椭圆上时(这些椭圆绘制在画布上),它被报告为在堆栈面板上方?
感谢您解决问题,
John.
这是一个非常小的项目(45KB)。问题如下(对于曲折的描述,我表示歉意):
一个“花哨”(而且相当丑陋)的按钮包含一个堆栈面板,该面板依次包含1.)标签,2.)画布,3.)两个同心椭圆,所有这些都从左到右排列。
堆栈面板有一个MouseEnter和一个MouseLeave事件处理程序,用于在标题栏中显示消息,指示鼠标是否在堆栈面板上方或其外部。
问题是:当鼠标位于标签上时(转而包含在堆栈面板中),报告鼠标正在堆栈面板上方(正确)。当鼠标移动到画布上时(也包含在堆栈面板中),鼠标被错误地报告为未在堆栈面板上方,但是当鼠标稍微向右移动一点(在画布上的两个椭圆上),鼠标又被报告为在堆栈面板上方。
为什么当鼠标在画布上时,它被报告为不在堆栈面板上方,但是当鼠标位于椭圆上时(这些椭圆绘制在画布上),它被报告为在堆栈面板上方?
感谢您解决问题,
John.