0
votes

Je veux montrer une fenêtre (superposition) lorsque je plante sur un objet ListView

Je voudrais afficher une sorte de fenêtre lorsque je déplace la souris sur un objet ListView. Lorsque la souris quitte l'objet, la fenêtre devrait reposer à nouveau.

Quelqu'un a-t-il des conseils pour moi?

Bien sûr que cela n'a pas fonctionné de cette façon. De plus, la fenêtre doit aller à la souris et non quelque part.

Test: xxx

La fenêtre se ferme et s'ouvre en continu. < P> Comment obtenir une fenêtre (popup) pour être affichée uniquement lorsque la souris est déplacée sur un objet ListView? Pas partout dans la liste de liste.


0 commentaires

3 Réponses :


0
votes

Vous devez utiliser des contrôles d'info-bulle ou de pop up. Détails ici:

Tooltips WPF - MSDN

popups WPF - MSDN < / p>

Comprendre les différences et choisir le meilleur dont vous avez besoin. Les principales différences sont:

  • Les info-bulles ne doivent pas être hovables, juste quelques informations supplémentaires
  • Les popups sont des fenêtres séparées, elles peuvent être personnalisées, des éléments cliquables (par exemple, des boutons)

    Les popups peuvent également être ouverts sur Hover.


0 commentaires

0
votes

Que ce qui se passe est que la boîte de dialogue s'ouvre qui provoque la souris de quitter la fenêtre de facturation qui provoque la fermeture de la boîte de dialogue. Ensuite, la souris rentre la fenêtre de facturation qui ouvre la boîte de dialogue, etc., etc. Ceci est en train de faire la boucle que vous voyez.

Je vous suggère de régler et d'avoir la boîte de dialogue fermer lorsque la souris quitte la boîte de dialogue.


1 commentaires

Comment obtenir une fenêtre (popup) pour être affichée uniquement lorsque la souris est déplacée sur un objet ListView? Pas partout dans la liste de liste. Je souhaite afficher les informations des objets ListView dans la popup, avez-vous une idée?



0
votes

Ma solution actuelle ressemble à ceci:

    private void Show_PopupBillingPreview(object sender, MouseEventArgs e)
    {
        var listViewItem = e.Source as ListViewItem;
        var billing = listViewItem?.Content as Billing;
        PuBillingPreviewTitle.Text = billing?.BillingId.ToString();
        PuBillingPreview.PlacementTarget = listViewItem;
        PuBillingPreview.Placement = PlacementMode.MousePoint;

        PuBillingPreview.IsOpen = true;
    }

    private void Hide_PopupBillingPreview(object sender, MouseEventArgs e)
    {
        if (PuBillingPreview.IsOpen)
            PuBillingPreview.IsOpen = false;
    }


0 commentaires