我有一个简单的c#outlook插件,可以将当前字体保存在一个按钮点击事件上,并在第二个事件中恢复它。
private void button1_Click(object sender, RibbonControlEventArgs e)
{
var a = Globals.ThisAddIn;
Outlook.Inspector inspector = a.Application.ActiveInspector();
if (inspector.EditorType == OlEditorType.olEditorWord)
{
Word.Document doc = inspector.WordEditor;
Word.Application app = doc.Application;
FontArr.Push(app.Selection.Font);
}
}
private void PopFormat_Click(object sender, RibbonControlEventArgs e)
{
var a = Globals.ThisAddIn;
Outlook.Inspector inspector = a.Application.ActiveInspector();
if (inspector.EditorType == OlEditorType.olEditorWord)
{
Word.Document doc = inspector.WordEditor;
Word.Application app = doc.Application;
Word.Font f = FontArr.Pop();
app.Selection.Font = f; // at this line exception occurs.
}
}
提前致谢。
答案 0 :(得分:0)
您可以使用Font类的Duplicate属性,该属性返回一个只读Font对象,该对象表示指定字体的字符格式。您可以使用重复属性来获取重复的Font对象的所有属性的设置。您可以将Duplicate属性返回的对象分配给另一个Font对象,以便一次性应用这些设置。在将复制对象分配给另一个对象之前,您可以更改复制对象的任何属性,而不会影响原始对象。
FontArr.Push(app.Selection.Font.Duplicate);