我应该为 VSTO 项目中的小型弹出控件实现什么?

What should I implement for a small popup control in a VSTO project?

在我的 VSTO 项目 (Office 2007 / 2010) 中,我想使用一个小的弹出控件(想想像工具提示这样的功能;淡入淡出动画和鼠标交互)。

我更愿意使用 WPF。如果我要在 WPF 中执行此操作,我会创建一个自定义弹出控件。

在 VSTO 中,据我所知,我必须使用 WPF window,然后有 2 个选项,要么我把这个 window 放在 Windows 表单容器中,要么我得到了我的办公室应用程序的 Hwnd,并将此 Hwnd 添加到 WPF Window 的所有者 属性。我说得对吗?

创建一个整体 window、在屏幕上和屏幕外设置动画等看起来像工具提示似乎有点矫枉过正。

所以我的问题是我应该怎么做。我更喜欢WPF。

我不知道这是否可行,但我的第一个想法是构建一个非常小的透明 WPF window 并使用 Office App 启动它。然后我可以构建一个弹出控件(它是这个小 window 的子项),我在鼠标位置显示和不显示。很确定弹出窗口可以出现在其父窗口的范围之外 window。

只是想用我所做的来整理我自己的问题。在 VSTO 插件项目中,我添加了对 WindowsBase、PresentationFramework 和演示核心的引用。

然后我只需按照添加 WPF 弹出窗口的任何教程或示例进行操作。我所说的弹出窗口是指 System.Windows.Controls.Primitives.Popup。对于放置,我使用 PlacementMode.Absolute,然后使用 window 点来设置其位置。

这几乎回答了我的问题。当然,这个弹出窗口确实漂浮在您的办公室 window 上方,因此您需要确保您可以控制它,例如,如果办公室 window 移动、最小化等。