Центр Outlook WPF Надстройка - PullRequest
0 голосов
/ 22 января 2011

Я создал надстройку для Outlook, используя WPF.Все работает правильно, кроме «Flare».Когда открывается окно WPF, оно не центрируется в форме Outlook, оно открывается по центру на экране.У меня для WindowStartLocation установлено значение CenterOwner, но, похоже, это не помогает.

Ответы [ 3 ]

2 голосов
/ 26 января 2011

Мое решение, под руководством Кори:

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;
0 голосов
/ 30 января 2014

Пробежался по этому поиску ответа 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
0 голосов
/ 22 января 2011

Вы должны иметь возможность получить ссылку на текущий экземпляр Outlook, получить доступ к объекту приложения для этого экземпляра и получить размер и расположение окна (слева, сверху) и выполнить некоторые математические расчеты, чтобы определить местоположение окна.

Что-то похожее на:

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 находится на первом мониторе и максимально развернуто. Нужно написать еще немного логики, чтобы позаботиться о других непредвиденных обстоятельствах

...