Ookii-dialogs-wpf: Passer le handle de fenêtre Win32 à ShowDialog()

Créé le 28 oct. 2020  ·  9Commentaires  ·  Source: ookii-dialogs/ookii-dialogs-wpf

J'aimerais passer un handle de fenêtre Win32 (par exemple, à partir de Microsoft Word, Excel ou Outlook) dans TaskDialog.ShowDialog() . Pour cela, il semble suffisant de faire TaskDialog.ShowDialog(IntPtr owner) public au lieu de private .

Que pensez-vous de rendre cette méthode public ? Je pourrais fournir un PR si vous voulez.

Merci!

Tous les 9 commentaires

Salut @mu88 , en principe, je suis d'accord avec ce changement s'il existe des scénarios où GetActiveWindow renvoie le handle vers une fenêtre incorrecte IntPtr - est-ce le cas ?

Utilisez le TaskDialog à partir d'un complément Excel ou similaire ?

Si c'est le cas, est-ce que passer un null à Task.ShowDialog(Window) donne un mauvais handle de propriétaire ?

Merci d'être revenu si vite, @augustoproiete !

Nous développons une application WPF. Cette application communique avec Excel via COM et récupère le handle de fenêtre d'Excel sous la forme IntPtr via Process.MainWindowHandle . Maintenant, nous voulons afficher un TaskDialog personnalisé dans Excel - le propriétaire de la boîte de dialogue doit donc être le handle de fenêtre d'Excel. Donc dans notre cas, il n'y a pas de fenêtre WPF qui puisse agir en tant que propriétaire puisqu'Excel n'est pas basé sur WPF.

J'ai essayé en appelant private TaskDialogButton ShowDialog(IntPtr owner) par réflexion et ça marche comme un charme.

Ça a l'air bien. Je vais prendre PR alors si vous êtes d'accord.

Des points bonus si vous pouvez également ajouter la même surcharge aux autres boîtes de dialogue, pour plus de cohérence.

Oui, je vais aller pour ce PR

Fermé via #19

Pouvez-vous s'il vous plaît créer une nouvelle version pour NuGet, @augustoproiete ?

Bien sûr @ mu88. Je pousserai une nouvelle version sur nuget.org d'ici demain soir

Paquet @mu88 NuGet publié sur nuget.org - https://www.nuget.org/packages/Ookii.Dialogs.Wpf/1.2.0

Merci @augustoproiete ! J'ai intégré le nouveau package et ça marche comme un charme 🥳

Cette page vous a été utile?
0 / 5 - 0 notes