Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 我应该为VSTO项目中的小弹出控件实现什么?_Wpf_Vb.net_Vsto_Office Addins - Fatal编程技术网

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

Wpf 我应该为VSTO项目中的小弹出控件实现什么?,wpf,vb.net,vsto,office-addins,Wpf,Vb.net,Vsto,Office Addins,在我的VSTO项目(Office2007/2010)中,我想使用一个小的弹出控件(想想类似工具提示的功能;淡入动画和鼠标交互) 我更喜欢使用WPF。如果我在WPF中这样做,我将创建一个自定义弹出控件 在VSTO中,据我所知,我必须使用WPF窗口,然后有两个选项,要么将此窗口放入Windows窗体容器中,要么获取office应用程序的Hwnd并将此Hwnd添加到WPF窗口的Owner属性中。我说的对吗 创建一个完整的窗口,在屏幕上和屏幕下设置动画等等,使其看起来像一个工具提示,这似乎有些过分 所以

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

我更喜欢使用WPF。如果我在WPF中这样做,我将创建一个自定义弹出控件

在VSTO中,据我所知,我必须使用WPF窗口,然后有两个选项,要么将此窗口放入Windows窗体容器中,要么获取office应用程序的Hwnd并将此Hwnd添加到WPF窗口的Owner属性中。我说的对吗

创建一个完整的窗口,在屏幕上和屏幕下设置动画等等,使其看起来像一个工具提示,这似乎有些过分

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


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

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

然后我只需遵循任何添加WPF弹出窗口的教程或示例。我所说的弹出窗口是指System.Windows.Controls.Primitives.popup。对于放置,我使用PlacementMode.Absolute,然后使用窗口点设置其位置

这基本上回答了我的问题。当然,这个弹出窗口实际上是浮动在你的办公室窗口上方,所以你需要确保你能控制它,例如,如果办公室窗口移动,最小化等等