Ookii-dialogs-wpf: 将 Win32 窗口句柄传递给 ShowDialog()

创建于 2020-10-28  ·  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 ,我可以接受这种更改 - 是这样吗?

是否在 Excel 加载项或类似加载项中使用 TaskDialog?

如果是这样,将null传递给Task.ShowDialog(Window)会得到错误的所有者句柄吗?

感谢您这么快回来, @augustoproiete

我们正在开发一个 WPF 应用程序。 此应用程序通过 COM 与 Excel 通信,并通过Process.MainWindowHandle将 Excel 的窗口句柄检索为IntPtr #$。 现在我们想在 Excel 中显示一个自定义的TaskDialog - 所以对话框的所有者必须是 Excel 的窗口句柄。 所以在我们的例子中,没有可以充当所有者的 WPF 窗口,因为 Excel 不是基于 WPF。

我通过反射调用private TaskDialogButton ShowDialog(IntPtr owner)进行了尝试,它就像一个魅力。

听起来不错。 如果你愿意的话,我会接受 PR。

如果您也可以向其他对话框添加相同的重载以保持一致性,则可以加分。

是的,我会去这个 PR

通过 #19 关闭

您能否为 NuGet 创建一个新版本, @augustoproiete

当然@mu88。 我将在明天晚上之前将新版本推送到 nuget.org

@mu88 NuGet 包发布到 nuget.org - https://www.nuget.org/packages/Ookii.Dialogs.Wpf/1.2.0

谢谢@augustoproiete ! 我已经集成了新包,它就像一个魅力🥳

此页面是否有帮助?
0 / 5 - 0 等级