Ookii-dialogs-wpf: Передать дескриптор окна Win32 в ShowDialog()

Созданный на 28 окт. 2020  ·  9Комментарии  ·  Источник: ookii-dialogs/ookii-dialogs-wpf

Я хотел бы передать дескриптор окна Win32 (например, из Microsoft Word, Excel или Outlook) в TaskDialog.ShowDialog() . Для этого вроде бы достаточно сделать TaskDialog.ShowDialog(IntPtr owner) public вместо private .

Что вы думаете о том, чтобы сделать этот метод public ? Я могу предоставить PR, если хотите.

Спасибо!

Все 9 Комментарий

Привет @ 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 ! Я интегрировал новый пакет, и он работает как шарм 🥳

Была ли эта страница полезной?
0 / 5 - 0 рейтинги