Outlook Add in 开发知识点

从过年到现在一直都在做outlook addin 方面的开发。在这个过程中遇到的各种各样的问题,都将记录到这里。以便自己继续开发。

首先使用wpf window作为我这个addin 的窗体部分。这样我就遇到了一个问题,我需要给我的wpf窗体定义一个父窗体也就是将outlook 窗体作为父窗体;我的思路是能不能get到outlook 这个窗体的实体,然后通过owner项轻松实质为父窗体;

我找了好久终于让我找到了一个很简单的方法;

代码就几句:

//这个里引用window api中的FindWindow,我写在另一个类WindowsHelper里面方便代码管理

IntPtr parent = Helper.WindowsHelper.FindWindow(null, "父窗体的标题");

//这里引用System.Windows.Interop
var child = new WindowInteropHelper(mainPage);
child.Owner = parent;

这个方法同时适用于Show()和ShowDialog()设置owner;

其实网上我还找到了其他方法但是却无法使用,具体原因不知

在找到父窗口句柄之后调用方法:Window parentWindow=HwndSource.FromHwnd("父窗口句柄").RootVisual as Window;

会报错,原因是HwndSource.FromHwnd("父窗口句柄") 这个结果是空值。

posted on 2016-03-18 14:28  风起风止  阅读(346)  评论(0)    收藏  举报

导航