Событие MouseLeave в элементе управления Silverlight 3 PopUp - PullRequest
2 голосов
/ 19 сентября 2009

Я хочу использовать элемент управления PopUp (System.Windows.Controls.Primitives.PopUp) для отображения контекстного меню. После того, как мышь уйдет, должна автоматически закрыться. Но обработчик событий для MouseLeave никогда не выполняется. Почему?

SAMPLE:

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;
}

Привет

Антон Калчик

Ответы [ 2 ]

1 голос
/ 24 марта 2010

вы должны привязать событие к Popup.Child, вместо самого всплывающего окна, это может быть ошибка silverlight.

1 голос
/ 16 ноября 2009

Какие типы дочерних элементов управления есть во всплывающем окне? В других случаях с WPF / Silverlight у меня были дочерние элементы управления, которые могли проглотить сообщения, которые было бы неплохо для родителя.

В качестве эксперимента, что произойдет, если вы добавите обработчики MouseLeave для дочерних элементов управления?

...