今天给菜单加上这个事件,发现弹出菜单后 鼠标怎么动都不会触发 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 发生时的操作