Center Outlook WPF加载项

我使用WPF创建了一个Outlook加载项。一切都正常,除了“耀斑”。当WPF窗口打开时,它不在Outlook窗体的中心,它在屏幕上打开。我将WindowStartLocation设置为CenterOwner,但这似乎没有做到这一点。     
已邀请:
您应该能够获得对当前Outlook实例的引用,访问该实例的Application对象并获取Window大小和位置(Left,Top)并进行一些数学计算以获得窗口的定位。 类似于:
Dim interopApplication As Outlook.Application = _
    Me.ActiveExplorer().Application

With interopApplication.ActiveWindow
    Dim _left = Me.Width - (.Width / 2)
    Dim _top = Me.Height - (.Height / 2)
End With
这假设Outlook窗口位于第一个监视器上并且已最大化。必须编写一些逻辑来处理其他突发事件     
我的解决方案,在Cory的指导下:
var sendToPulse = new Pulse_Outlook_Presentation.SendToPulse ();
var interopApplication = Globals.ThisAddIn.Application;

var x = (interopApplication.ActiveWindow ().Left + interopApplication.ActiveWindow ().Width / 2) - (sendToPulse.Width / 2);
var y = (interopApplication.ActiveWindow ().Top + interopApplication.ActiveWindow ().Height / 2) - (sendToPulse.Height / 2);

OutlookWin32Window parentWindow = new OutlookWin32Window (Globals.ThisAddIn.Application.ActiveWindow ());

sendToPulse.Left = x;
sendToPulse.Top = y;
    
通过这个寻找VBA答案 - 以最简单的形式,其中应用程序是主机,而我是当前表单的快捷方式。
Private Sub UserForm_Initialize()
   ProgressFrame.Caption = ""
   Me.Left = Application.ActiveWindow().Left + Application.ActiveWindow().Width / 2 - (Me.Width / 2)
   Me.Top = Application.ActiveWindow().Top + Application.ActiveWindow().Height / 2 - (Me.Height / 2)
End Sub
    

要回复问题请先登录注册