WPF Popup ZOrder
Je suis en utilisant WPF Popup, mais il ouvre, au-dessus de chaque fenêtre unique sur mon bureau, même si mon application est réduite. Comment puis-je faire il ne rester que sur la fenêtre, il originaire? La même chose arrive quand ma fenêtre est derrière les autres fenêtres: la fenêtre contextuelle s'affiche au-dessus d'eux tous.
"Il doit y avoir quelque chose qui peut être fait!"
Grâce.
- J'ai le même problème et n'a pas été en mesure de le résoudre. Il est difficile de croire que c'est le comportement par défaut, mais MSDN est plus qu'inutile sur ce. La façon dont je l'ai résolu est j'ai réglé la totalité de la fenêtre contenant la zone de liste déroulante comme Supérieur=True, la fenêtre de xaml. Qui rend l'ensemble de la fenêtre du haut et pas seulement la liste déroulante de ma zone de liste déroulante (qui est la même que dans votre popup cas).
Vous devez vous connecter pour publier un commentaire.
J'ai essayé de résoudre cette question, et n'ont pas trouvé de bonne solution. Cela semble être la façon dont il est censé travailler, et vous ne pouvez pas remplacer cela.
La seule solution que j'ai trouvé est d'utiliser une disposition régulière panneau et le lever du Z-Index, c'est donc le premier niveau de contrôle (cette sorte de simule la fenêtre Contextuelle). La seule fois où j'ai constaté que cela ne fonctionne pas, c'est quand vous avez WinForms sur l'écran par le biais WindowsFormsHosts. Ceux Winforms sont toujours à un Z-Index supérieur que tout le WPF choses. C'est alors que vous devez utiliser une fenêtre Contextuelle pour la contourner.
J'ai donc fouillé dans le cadre du code source pour voir où il en fait les causes de la fenêtre pour être au sommet et il le fait en privé classe imbriquée. Cependant, il ne fournit pas une option, que ce soit à un enfant popup de la fenêtre principale ou à la fenêtre de niveau supérieur. Voici un hack pour faire toujours un enfant de la fenêtre popup. On pourrait facilement ajouter une dépendance de la propriété et de faire un peu plus de magie pour le rendre le plus haut.
Vérifier: http://chriscavanagh.wordpress.com/2008/08/13/non-topmost-wpf-popup/
peut-être cela peut vous aider!!
Bien que je n'ai pas essayé de le faire, j'ai aussi lu que cela peut être fait en utilisant des ornements...Matt Galbraith a suggéré sur le forum MSDN lorsque l'on a demandé la même question...au cas où quelqu'un est encore la lecture de ce fil.
C'est comment je l'ai résolu: