Я хотел бы передать дескриптор окна Win32 (например, из Microsoft Word, Excel или Outlook) в TaskDialog.ShowDialog()
. Для этого вроде бы достаточно сделать TaskDialog.ShowDialog(IntPtr owner)
public
вместо private
.
Что вы думаете о том, чтобы сделать этот метод public
? Я могу предоставить PR, если хотите.
Спасибо!
Привет @ mu88 , в принципе я согласен с этим изменением, если есть сценарии, в которых GetActiveWindow
возвращает дескриптор неправильного окна IntPtr
- так ли это?
Используете ли TaskDialog из надстройки Excel или аналогичной?
Если да, то передача null
в Task.ShowDialog(Window)
приводит к неправильному дескриптору владельца?
Спасибо, что так быстро вернулись, @augustoproiete !
Мы разрабатываем приложение WPF. Это приложение взаимодействует с Excel через COM и получает дескриптор окна Excel как IntPtr
через Process.MainWindowHandle
. Теперь мы хотим отобразить пользовательский TaskDialog
в Excel, поэтому владельцем диалогового окна должен быть дескриптор окна Excel. Таким образом, в нашем случае нет окна WPF, которое могло бы действовать как владелец, поскольку Excel не основан на WPF.
Я попробовал, вызвав private TaskDialogButton ShowDialog(IntPtr owner)
через отражение, и это работает как шарм.
Звучит отлично. Тогда я возьму пиар, если ты согласен.
Бонусные баллы, если вы можете добавить ту же перегрузку и в другие диалоги для согласованности.
Да, я пойду на этот пиар
Закрыто через #19
Можете ли вы создать новую версию для NuGet, @augustoproiete ?
Конечно @mu88. Завтра вечером я отправлю новую версию на nuget.org.
Пакет NuGet @mu88 опубликован на nuget.org — https://www.nuget.org/packages/Ookii.Dialogs.Wpf/1.2.0
Спасибо @augustoproiete ! Я интегрировал новый пакет, и он работает как шарм 🥳