我正在通過Office/Outlook 2013開發人員參考閱讀了很長一段時間,並且我沒有找到關於嵌入全屏WPF窗口或類似內容的任何信息。有沒有辦法替換Outlook 2013加載項中的主要內容頁面?
我的目標是,當用戶更改爲Outlook中的特定文件夾時,應將主內容頁面替換爲完全自定義的用戶界面。打開一個單獨的WPF窗口是沒有問題的,但是我想將UI作爲全屏嵌入Outlook窗口本身。
我知道表單區域的概念(全部替換),但它並不像預期的那樣工作。
假設有一個帶有工廠消息類IPM.Test.MainRegion的Replace-All表單區域。我認爲攔截文件夾切換事件可以讓我調用了應該在一個替代的方式顯示主區域的區域:
void explorer_BeforeFolderSwitch(object NewFolder, ref bool Cancel)
{
Outlook.Folder target = NewFolder as Outlook.Folder;
if (target.Name == "Test")
{
Outlook.NameSpace ns = this.Application.GetNamespace("MAPI");
Outlook.MAPIFolder mapi = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
Outlook.MailItem item = mapi.Items.Add("IPM.Test.MainRegion") as Outlook.MailItem;
item.Display(false); //no modal window - but still opens a modal
Cancel = true; //don't actually switch the folder to surpress default view.
}
}
的問題是,這種代碼實際上打開一個新郵件窗口(雖然Display的參數爲false),並且它沒有顯示在VS Region Designer中設計的表單。
有什麼我在這裏失蹤? Office開發人員參考並沒有真正說出替換所有區域的情況(僅適用於非自定義消息類,在這種情況下,它是微不足道的)。
你有什麼建議嗎?
UPDATE
因此,似乎有現在的方式顯示主視圖文件夾中的窗體區域。表單區域始終與其註冊的項目類型(日曆,任務,郵件...)關聯。因此,表單區域不是這樣做的。要麼完全替代主窗口是不可能的,要麼有另一種方式。
是的,剛剛看到了!感謝提示! –