2017-01-03 69 views
0

在我的VSTO项目(Office 2007/2010)中,我想使用一个小的弹出控件(想象一下工具提示的功能;淡入淡出的动画和鼠标交互)。我应该为VSTO项目中的小型弹出控件实施什么?

我宁愿使用WPF。如果我在WPF中这样做,我会创建一个自定义Popup控件。我知道它,我必须使用WPF窗口,然后有2个选项,要么我把这个窗口放在一个Windows窗体容器中,要么我得到我的办公室应用程序的Hwnd,然后添加这个Hwnd到WPF窗口的所有者属性。我在这里纠正?

创建一个整个窗口,在屏幕上和屏幕之外动画,看起来像一个工具提示似乎是矫枉过正。

所以我的问题是我该如何做到这一点。我更喜欢WPF。

我不知道这是否会工作,但我的第一个想法是建立一个非常小的WPF窗口,它是透明的,并使用Office应用程序启动它。然后,我可以构建一个Popup控件(它是这个小窗口的子项),并且不显示鼠标位置。很确定弹出窗口可以出现在其父窗口的边界之外。

回答

0

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

然后我只需按照任何教程或添加WPF Popup的示例。弹出我的意思是一个System.Windows.Controls.Primitives.Popup。对于Placement,我使用了PlacementMode.Absolute,然后使用一个窗口点来设置它的位置。

这几乎可以解答我的问题。当然,这个弹出窗口实际上浮在你的办公室窗口之上,所以你需要确保你控制它,例如,如果办公室窗口移动,最小化等等。

相关问题