4

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

样式正确,垂直对齐顶部

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

垂直对齐开始于边界之外

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

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

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 的大小以适应形状(调整字体大小),但是我似乎找不到该功能。

多谢你们

4

2 回答 2

3

所以,显然

shape.TextFrame.AutoSize 

接受具有 PpAutoSize.ppAutoSizeShapeToFitText 的可枚举 PpAutoSize;可以使用的

然而

shape.TextFrame2.AutoSize

接受具有 MsoAutoSize.msoAutoSizeTextToFitShape 的可枚举 MsoAutoSize;

因此,基本上,如果您将使用的文本框更改为 TextFrame2 而不是 TextFrame,您可以让文本自动调整大小以适应形状。

shape.TextFrame2.AutoSize = MsoAutoSize.msoAutoSizeTextToFitShape;
于 2013-05-21T11:32:09.640 回答
0

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

于 2013-05-21T07:36:17.703 回答