C# 如何在OpenXML/PresentationML/C中的PowerPoint(PPTX)中插入换行符#

C# 如何在OpenXML/PresentationML/C中的PowerPoint(PPTX)中插入换行符#,c#,openxml,openxml-sdk,presentationml,C#,Openxml,Openxml Sdk,Presentationml,虽然Word和PowerPoint都使用OpenXML,但换行符的处理方式不同。在Word/WordprocessingML中,您可以运行.Append(new Break())(请参阅)插入换行符。不幸的是,在PresentationML中,这会导致演示文稿无效,并且在PowerPoint中加载时会出现错误 如何在PowerPoint的形状的文本体中添加换行符?有这个很棒的反射代码工具,可以获取任何OpenXML文件的C代码。但是,特别是经过大量编辑之后,演示文稿中的文本会被拆分为各种Run元

虽然Word和PowerPoint都使用OpenXML,但换行符的处理方式不同。在Word/WordprocessingML中,您可以
运行.Append(new Break())
(请参阅)插入换行符。不幸的是,在PresentationML中,这会导致演示文稿无效,并且在PowerPoint中加载时会出现错误

如何在PowerPoint的
形状
文本体
中添加换行符?

有这个很棒的反射代码工具,可以获取任何OpenXML文件的C代码。但是,特别是经过大量编辑之后,演示文稿中的文本会被拆分为各种
Run
元素,并且反射代码不是很紧凑。下面是一个
形状的
文本体
示例

new TextBody(
  new A.BodyProperties(),
  new A.Paragraph(
    new A.Run( new A.Text("first line") ),
    new A.Break(),
    new A.Run( new A.Text("second line") )
  ),
  new A.Paragraph(
    new A.Run( new A.Text("new paragraph") )
  )
)
注意,
中断
段落
的子项,而不是
运行
的子项(正如在WordprocessingML中一样)

请注意,
Break
会换行(PowerPoint中的Shift-Return),如果需要新段落(PowerPoint中的Return),则需要新的
段落