我想使用PopUp(System.Windows.Controls.Primitives.PopUp)控件来显示一些上下文菜单。鼠标离开后,应自动关闭。但是从不执行MouseLeave的eventhandler。为什么呢?
示例:
void DocumentLibrary_Loaded(object sender, RoutedEventArgs e)
{
DocumentLibraryDialog documentLibraryDialog = new DocumentLibraryDialog();
_popUpDocumentLibraryDialog = new Popup();
_popUpDocumentLibraryDialog.Width = 70;
_popUpDocumentLibraryDialog.Height = 20;
_popUpDocumentLibraryDialog.MouseLeave += new MouseEventHandler(_popUpDocumentLibraryDialog_MouseLeave);
_popUpDocumentLibraryDialog.Child = documentLibraryDialog;
}
void _popUpDocumentLibraryDialog_MouseLeave(object sender, MouseEventArgs e)
{
Popup currentPopUp = (Popup)sender;
if (currentPopUp.IsOpen)
(currentPopUp.IsOpen) = false;
}
此致
Anton Kalcik
答案 0 :(得分:1)
Popup中有哪种类型的子控件?在使用WPF / Silverlight的其他情况下,我已经有了子控件吞下消息,这对于父进程来说是很好的。
作为一项实验,如果为子控件附加MouseLeave处理程序会发生什么?
答案 1 :(得分:1)
你必须在Popup.Child上绑定事件,而不是弹出本身,它可能是一个Silverlight的错误。