设置powerpoint形状的溢出

时间:2013-05-20 12:47:41

标签: c# vsto powerpoint

所以,我有一个以编程方式生成的形状,当它有少量文本时,它看起来像这样:

Style is correct, vertically aligned to top

如果我添加大量文本,它会流出形状,如下所示:

Vertical alignment starts outside of boundaries

我想要做的是隐藏溢出并强制文本从形状的顶部开始(当前文本从高于形状顶部的位置开始)

到目前为止,我还没有找到很多关于此的信息,这里是我用于形状内部文本的代码:

var shape = slide.Shapes.AddShape(MsoAutoShapeType.msoShapeRectangle, left, top, width, height);
var textRange2 = shape.TextFrame.TextRange.InsertAfter(description);
            textRange2.Font.Size = 10;

shape.TextFrame.TextRange.Paragraphs().ParagraphFormat.Alignment = PpParagraphAlignment.ppAlignLeft;
shape.TextFrame.TextRange.Paragraphs().Font.Name = "Consolas";
shape.TextFrame.TextRange.Paragraphs().Font.Color.RGB = foregroundColor;

最后一件事,我知道我可以限制字符串,但这会给用户带来问题。如果文字太多,我希望他能够手动调整形状,这样就不行了。基本上,我只想要相当于css溢出:隐藏规则。

某些用户的一个选项可能是使用以下内容:

shape.TextFrame.AutoSize = PpAutoSize.ppAutoSizeShapeToFitText;

这将调整形状大小以适应文本,还应该有一个选项来调整TEXT的大小以适应形状(调整字体大小),但我似乎无法找到该函数。

谢谢你们

2 个答案:

答案 0 :(得分:3)

所以,显然

shape.TextFrame.AutoSize 

接受一个可枚举的PpAutoSize,它有PpAutoSize.ppAutoSizeShapeToFitText;可以使用

shape.TextFrame2.AutoSize

接受一个可枚举的MsoAutoSize,它具有MsoAutoSize.msoAutoSizeTextToFitShape;

所以基本上,如果你改变你正在使用Textframe2而不是TextFrame的文本框架,你可以让文本调整大小以自动适应形状。

shape.TextFrame2.AutoSize = MsoAutoSize.msoAutoSizeTextToFitShape;

答案 1 :(得分:0)

直接在Powerpoint中,可以选择执行此操作。根据菜单中的位置,我猜它是在shape.TextFrame.AutoSize属性 - 也许是“混合”选项? PowerPoint对象模型是一个巨大的混乱 - 所以它可能是一些其他strane属性...

相关问题