Ookii-dialogs-wpf: Übergeben Sie das Win32-Fensterhandle an ShowDialog()

Erstellt am 28. Okt. 2020  ·  9Kommentare  ·  Quelle: ookii-dialogs/ookii-dialogs-wpf

Ich möchte ein Win32 Window Handle (zB von Microsoft Word, Excel oder Outlook) in TaskDialog.ShowDialog() übergeben. Dazu scheint es ausreichend zu sein, statt private TaskDialog.ShowDialog(IntPtr owner) public zu machen.

Was halten Sie davon, diese Methode public zu machen? Wenn du möchtest, könnte ich dir eine PR zur Verfügung stellen.

Danke!

Alle 9 Kommentare

Hallo @mu88 , im Prinzip bin ich mit dieser Änderung einverstanden, wenn es Szenarien gibt, in denen GetActiveWindow das Handle auf ein falsches Fenster IntPtr #$ zurückgibt - ist das der Fall?

Verwenden Sie den TaskDialog in einem Excel-Add-In oder ähnlichem?

Wenn ja, führt die Übergabe von null an Task.ShowDialog(Window) zu einem falschen Besitzer-Handle?

Danke, dass du so schnell zurückgekommen bist, @augustoproiete !

Wir entwickeln eine WPF-Anwendung. Diese Anwendung kommuniziert mit Excel über COM und ruft das Excel-Fensterhandle als IntPtr über Process.MainWindowHandle ab. Jetzt wollen wir ein benutzerdefiniertes TaskDialog in Excel anzeigen - also muss der Besitzer des Dialogs das Excel-Fensterhandle sein. In unserem Fall gibt es also kein WPF-Fenster, das als Eigentümer fungieren kann, da Excel nicht auf WPF basiert.

Ich habe es versucht, indem ich private TaskDialogButton ShowDialog(IntPtr owner) über Reflektion angerufen habe, und es funktioniert wie ein Zauber.

Hört sich gut an. Ich übernehme dann PR, wenn Sie dazu bereit sind.

Bonuspunkte, wenn Sie die gleiche Überladung auch zu den anderen Dialogen hinzufügen können, um die Konsistenz zu gewährleisten.

Ja, ich werde für diese PR gehen

Geschlossen über #19

Können Sie bitte eine neue Version für NuGet erstellen, @augustoproiete ?

Sicher @mu88. Ich werde bis morgen Abend eine neue Version auf nuget.org pushen

@mu88 NuGet-Paket auf nuget.org veröffentlicht – https://www.nuget.org/packages/Ookii.Dialogs.Wpf/1.2.0

Danke @augustoproiete ! Ich habe das neue Paket integriert und es funktioniert wie am Schnürchen 🥳

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen