2009-09-19 7 views
2

Je souhaite utiliser le contrôle PopUp (System.Windows.Controls.Primitives.PopUp) pour afficher un menu contextuel. Après les feuilles de souris, devrait se fermer automatiquement. Mais eventhandler pour MouseLeave n'est jamais exécuté. Pourquoi?Événement MouseLeave dans Silverlight 3 Contrôle PopUp

EXEMPLE:

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

Cordialement

Anton Kalcik

Répondre

1

Quel type de contrôles enfants sont dans le Popup? Dans d'autres circonstances avec WPF/Silverlight, j'ai eu des contrôles enfants avalent des messages que les parents auraient bien aimé gérer.

À titre expérimental, que se passe-t-il si vous attachez des gestionnaires MouseLeave pour les contrôles enfants?

+0

C'était ma solution. J'ai attaché des gestionnaires MouseLeave au conteneur enfant. Cordialement AKa –

1

vous devez lier l'événement sur le Popup.Child, au lieu de popup lui-même, il peut être un bug de Silverlight.

Questions connexes