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!
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 🥳