我有一个 UserControl 监听它自己的 MouseLeave 以改变它的背景颜色和它的一些孩子的可见性。应该失去可见性的孩子也听他们自己的 MouseLeave 以改变他们的背景颜色。
一切正常的场景是这样的:
- 将鼠标移动到 UserControl。
- 将鼠标移至子级。
- 将鼠标移出 Child 进入 UserControl。
有问题的情况是这样的:
- 将鼠标移动到 UserControl。
- 将鼠标移至子级。
- 将鼠标移出 Child,而不是移入 UserControl,而是直接移出。
这种情况一直发生,因为 Child 位于 UserControl 的最边缘。请注意,不仅 UserControl 的 MouseLeave 不会触发,Child 的 MouseLeave 也不会触发。
在这种情况下,为了查明鼠标是否真的离开了该区域,我必须听其他控件的 MouseEnter,然后通知 UserControl 和 Child,但我真的想避免这种解决方案,因为它很丑陋而不是 OOPish .
此外,Child 必须位于 UserControl 的最边缘,并且不能移动。
谁能想到一个巧妙的解决方案?