Eu gostaria de passar um identificador de janela Win32 (por exemplo, do Microsoft Word, Excel ou Outlook) para TaskDialog.ShowDialog()
. Para isso, parece ser suficiente fazer TaskDialog.ShowDialog(IntPtr owner)
public
em vez de private
.
O que você acha de fazer este método public
? Eu poderia fornecer um PR se você quiser.
Obrigado!
Oi @mu88 , em princípio, estou bem com essa alteração se houver cenários em que GetActiveWindow
retorne o identificador para uma janela incorreta IntPtr
- é esse o caso?
Está usando o TaskDialog de um suplemento do Excel ou similar?
Em caso afirmativo, passar um null
para Task.ShowDialog(Window)
é um identificador de proprietário errado?
Obrigado por voltar tão rápido, @augustoproiete !
Estamos desenvolvendo um aplicativo WPF. Este aplicativo se comunica com o Excel via COM e recupera o identificador de janela do Excel como IntPtr
via Process.MainWindowHandle
. Agora queremos mostrar um TaskDialog
personalizado no Excel - então o proprietário da caixa de diálogo deve ser o identificador de janela do Excel. Portanto, no nosso caso, não há janela do WPF que possa atuar como proprietária, pois o Excel não é baseado no WPF.
Eu tentei chamando private TaskDialogButton ShowDialog(IntPtr owner)
via reflexão e funciona como um encanto.
Parece bom. Vou levar PR então se você estiver a fim.
Pontos de bônus se você puder adicionar a mesma sobrecarga aos outros diálogos também, para consistência.
Sim, eu vou para este PR
Fechado pelo nº 19
Você pode criar uma nova versão para o NuGet, @augustoproiete ?
Claro @mu88. Vou enviar uma nova versão para nuget.org até amanhã à noite
@mu88 pacote NuGet publicado em nuget.org - https://www.nuget.org/packages/Ookii.Dialogs.Wpf/1.2.0
Obrigado @augustoproiete ! Eu integrei o novo pacote e funciona como um encanto 🥳