Me gustaría pasar un identificador de ventana Win32 (por ejemplo, de Microsoft Word, Excel o Outlook) a TaskDialog.ShowDialog()
. Para esto, parece ser suficiente hacer TaskDialog.ShowDialog(IntPtr owner)
public
en lugar de private
.
¿Qué piensas acerca de hacer que este método sea public
? Podría proporcionar un PR si quieres.
¡Gracias!
Hola, @mu88 , en principio estoy de acuerdo con ese cambio si hay escenarios en los que GetActiveWindow
devuelve el identificador a una ventana incorrecta IntPtr
, ¿es ese el caso?
¿Está utilizando TaskDialog desde dentro de un complemento de Excel o algo similar?
Si es así, ¿pasar un null
a Task.ShowDialog(Window)
es un identificador de propietario incorrecto?
¡Gracias por volver tan rápido, @augustoproiete !
Estamos desarrollando una aplicación WPF. Esta aplicación se comunica con Excel a través de COM y recupera el identificador de la ventana de Excel como IntPtr
a través Process.MainWindowHandle
. Ahora queremos mostrar un TaskDialog
personalizado dentro de Excel, por lo que el propietario del cuadro de diálogo debe ser el identificador de la ventana de Excel. Entonces, en nuestro caso, no hay una ventana de WPF que pueda actuar como propietario, ya que Excel no se basa en WPF.
Lo probé llamando a private TaskDialogButton ShowDialog(IntPtr owner)
a través de la reflexión y funciona de maravilla.
Suena bien. Me ocuparé de las relaciones públicas entonces, si te animas.
Puntos de bonificación si puede agregar la misma sobrecarga a los otros cuadros de diálogo también, para mantener la coherencia.
Sí, iré por este PR
Cerrado vía #19
¿Puede crear una nueva versión para NuGet, @augustoproiete ?
Claro @mu88. Enviaré una nueva versión a nuget.org mañana por la noche
@mu88 Paquete NuGet publicado en nuget.org - https://www.nuget.org/packages/Ookii.Dialogs.Wpf/1.2.0
¡Gracias @augustoproiete ! He integrado el nuevo paquete y funciona a las mil maravillas 🥳