comtextMenu 如何正确的响应MouseLeave事件

今天给菜单加上这个事件,发现弹出菜单后 鼠标怎么动都不会触发 mouseLeave事件

解决方法是

在菜单loaded事件中,利用visualTreeHelper 访问他内部的border控件,把这个控件 委托上mouseLeave事件

var cm = sender as ContextMenu;
Border border = GetChildOfType<Border>(cm);//此方法中用visualTreeHelper 获取 contextMenu里的border
border.MouseLeave += Border_MouseLeave;

因为每次loaded都会再委托一个事件,所以在Border_MouseLeave方法中,要自己去掉委托以免 重复执行    

(sender as Border).MouseLeave -= Border_MouseLeave;//在这里加 你希望的mouseLeave 发生时的操作
上一篇:Bean 注解(Annotation)配置(2)- Bean作用域与生命周期回调方法配置


下一篇:python练习程序(显示图像)