C# PowerPoint VSTO 插件:在 PowerPoint TextRange 中添加文本后更改上标字体样式
C# PowerPoint VSTO Addin: Change superscript font style after added text in PowerPoint TextRange
在我的一个 C# PowerPoint VSTO 插件中,我在形状的 TextRange 中的当前光标位置添加了一些上标文本,如下所示
PowerPoint.TextRange superscriptText = Globals.ThisAddIn.Application.ActiveWindow.Selection.TextRange.InsertAfter("xyz");
superscriptText.Font.Superscript = Office.MsoTriState.msoCTrue;
这按预期工作:字符串 "xyz" 被插入到当前光标位置的上标中。问题是,一旦插入 "xyz",其后所有文本的字体样式仍为上标,即用户在插入 "xyz" 后在光标处键入的文本。插入上标文本后,如何将光标处的 tex 样式更改回非上标?我没有成功尝试
Globals.ThisAddIn.Application.ActiveWindow.Selection.TextRange.Font.Superscript = Office.MsoTriState.msoFalse;
但进一步键入的文本仍以上标形式继续。
两种可能:
- 您可以结合所需的格式使用
InsertAfter
(和 InsertBefore
)方法。
格式附加到 InsertAfter
方法:
PowerPoint.TextRange superscriptText = Globals.ThisAddIn.Application.ActiveWindow.Selection.TextRange;
superscriptText.InsertAfter("xyz").Font.Superscript = Office.MsoTriState.msoCTrue;
superscriptText.InsertAfter(" not superscript").Font.Superscript = Office.MsoTriState.msoCFalse;
- 使用
InsertAfter
时创建第二个 TextRange
对象。语言参考说明:
Appends a string to the end of the specified text range. Returns a
TextRange object that represents the appended text.
新建TextRange
并单独格式化
PowerPoint.TextRange superscriptText = Globals.ThisAddIn.Application.ActiveWindow.Selection.TextRange;
superscriptText.InsertAfter("xyz")
superscriptText.Font.Superscript = Office.MsoTriState.msoCTrue;
PowerPoint.TextRange normalText = superscriptText.InsertAfter(" not superscript")
normalText.Font.Superscript = Office.MsoTriState.msoCFalse;
在我的一个 C# PowerPoint VSTO 插件中,我在形状的 TextRange 中的当前光标位置添加了一些上标文本,如下所示
PowerPoint.TextRange superscriptText = Globals.ThisAddIn.Application.ActiveWindow.Selection.TextRange.InsertAfter("xyz");
superscriptText.Font.Superscript = Office.MsoTriState.msoCTrue;
这按预期工作:字符串 "xyz" 被插入到当前光标位置的上标中。问题是,一旦插入 "xyz",其后所有文本的字体样式仍为上标,即用户在插入 "xyz" 后在光标处键入的文本。插入上标文本后,如何将光标处的 tex 样式更改回非上标?我没有成功尝试
Globals.ThisAddIn.Application.ActiveWindow.Selection.TextRange.Font.Superscript = Office.MsoTriState.msoFalse;
但进一步键入的文本仍以上标形式继续。
两种可能:
- 您可以结合所需的格式使用
InsertAfter
(和InsertBefore
)方法。
格式附加到 InsertAfter
方法:
PowerPoint.TextRange superscriptText = Globals.ThisAddIn.Application.ActiveWindow.Selection.TextRange;
superscriptText.InsertAfter("xyz").Font.Superscript = Office.MsoTriState.msoCTrue;
superscriptText.InsertAfter(" not superscript").Font.Superscript = Office.MsoTriState.msoCFalse;
- 使用
InsertAfter
时创建第二个TextRange
对象。语言参考说明:
Appends a string to the end of the specified text range. Returns a TextRange object that represents the appended text.
新建TextRange
并单独格式化
PowerPoint.TextRange superscriptText = Globals.ThisAddIn.Application.ActiveWindow.Selection.TextRange;
superscriptText.InsertAfter("xyz")
superscriptText.Font.Superscript = Office.MsoTriState.msoCTrue;
PowerPoint.TextRange normalText = superscriptText.InsertAfter(" not superscript")
normalText.Font.Superscript = Office.MsoTriState.msoCFalse;