Outlook AddIn缩放.百分比
本文关键字:百分比 缩放 AddIn Outlook | 更新日期: 2023-09-27 17:49:39
我正在尝试将此VBA代码从Outlook插件转换为c#
Private Sub objInspector_Activate() Handles objInspector.Activate
Dim wdDoc As Microsoft.Office.Interop.Word.Document = objInspector.WordEditor
wdDoc.Windows(1).Panes(1).View.Zoom.Percentage = lngZoom
End Sub
但是我无法访问窗格。视图。缩放。百分比属性
主要思想是当用户打开电子邮件时,他将得到一个自定义缩放级别。
我现在得到的是:
void Inspector_Activate()
{
// this bool is true
// bool iswordMail = objInspector.IsWordMail();
//I get the word document
Document word = objInspector.WordEditor as Microsoft.Office.Interop.Word.Document;
word.Application.ActiveDocument.ActiveWindow.View.Zoom.Percentage = 150;
// at this point i'm getting an exception
// I've also tried with
// word.ActiveWindow.ActivePane.View.Zoom.Percentage = 150; getting the same exception
}
例外是:
类型为'System.Runtime.InteropServices.COMException'的异常发生在outlookaddtest .dll中,但未在用户代码中处理
附加信息:该对象模型命令在电子邮件。
我是c#和Office插件的新手,有什么建议吗?
使用word.Windows.Item(1).View.Zoom.Percentage = 150
(其中word
来自Inspector.WordEditor
)
word.Application.ActiveDocument.ActiveWindow.View.Zoom。
触发异常的属性是什么?
无论如何,没有必要在代码中调用Application和ActiveDocument属性。检查器类的WordEditor属性返回一个Document类的实例(不是Word Application实例)。感谢Eugene Astafiev的帮助。方括号起了作用
VBA
Private Sub objInspector_Activate() Handles objInspector.Activate
Dim wdDoc As Microsoft.Office.Interop.Word.Document = objInspector.WordEditor
wdDoc.Windows(1).Panes(1).View.Zoom.Percentage = 150
End Sub
c# private void Inspector_Activate()
{
Document wdDoc = objInspector.WordEditor;
wdDoc.Windows[1].Panes[1].View.Zoom.Percentage = 150;
}
我一直想要这个,然后我在MSDN画廊Outlook 2010中偶然发现了一个很好的项目:开发一个检查器包装。它为所有Outlook对象提供了一组包装器,因此您可以为每个感兴趣的项目获得一个真实的事件。我不确定这是不是最有效的方法,但它似乎有效。
我的视力有问题,所以我想把所有的东西都变黑,把所有的东西都变焦。我似乎可以通过覆盖Activate()方法来做到这一点。这一切都很新,所以我们会看看它是否能长期存在。
protected virtual void Activate() {
var activeDocument = Inspector.WordEditor as Document;
if (activeDocument == null)
return;
var mailZoom = GetSetting("MailZoom", 125);
if (mailZoom != 0)
activeDocument.Windows[1].View.Zoom.Percentage = mailZoom;
if (GetSetting("MailBlack", true)) {
activeDocument.Background.Fill.ForeColor.RGB = 0;
activeDocument.Background.Fill.Visible = msoTrue;
activeDocument.Saved = true;
}
}
在这个例子中,GetSetting只是一个从INI文件返回设置的函数。您可以使用常量或其他存储方法。
可能有更好的方法来获得黑色文本上的白色,但这看起来很好。