C# 在powerpoint形状中设置溢出

C# 在powerpoint形状中设置溢出,c#,vsto,powerpoint,C#,Vsto,Powerpoint,所以,我有一个我正在编程生成的形状,当它有少量文本时,它看起来像这样: 但是,如果我添加了大量文本,它会流出形状,如下所示: 我想做的是隐藏溢出并强制文本从形状顶部开始(当前文本从高于形状顶部的位置开始) 到目前为止,我还没有找到太多关于这方面的信息,以下是我用于形状内文本的代码: var shape = slide.Shapes.AddShape(MsoAutoShapeType.msoShapeRectangle, left, top, width, height); var textR

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

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

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

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

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;
这将调整形状以适应文本,还应该有一个选项来调整文本大小以适应形状(调整字体大小),但我似乎找不到该功能


直接在Powerpoint中感谢大家-可以选择这样做。根据菜单中的位置,我猜它在shape.TextFrame.AutoSize属性中-可能是“混合”选项? PowerPoint对象模型乱七八糟——所以它可能是其他strane属性…

显然是这样

shape.TextFrame.AutoSize 
接受可枚举的pAutoSize,该pAutoSize具有pAutoSize.pAutoSizeShapeToFittext;那是可以用的

鉴于

shape.TextFrame2.AutoSize
接受一个可枚举的MsoAutoSize,该MsoAutoSize具有MsoAutoSize.MSOAutosizeTextToFape

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

shape.TextFrame2.AutoSize = MsoAutoSize.msoAutoSizeTextToFitShape;

嘿,Christian,我实际上已经试过了,但是没有用-它似乎真的没有任何作用(我认为这只是默认设置…?),但是你是对的,对象模型是一团乱,当然文本大小调整应该存在,因为你可以在Powerpoint中手动进行(正如你所指出的),这是难以置信的晦涩难懂,如果你运气不好,就没有办法做到这一点——在PP中你可以做一些事情,但在自动化中却不行:(你是对的,这可能是你在自动化中无法做到的事情,我会找到一种手动操作的方法,并继续探索潜在的选项,感谢ChristianAs的帮助。一个想法:可以在Powerpoint中计算文本的大致大小-如果你这样做,你可以猜测形状是否太小,并减少所需的字体大小e、 我已经为一个应用程序做了这个,但是我不能给你代码,抱歉:(这可以让你开始:我的解决方案建立在格式化文本的基础上:他嘿,谢谢你!这可能会很有帮助!我会让你知道,当我不在工作时间时我会尝试一下:)好的-那…很有趣。Textframe2存在的原因是什么?;)感谢您的澄清。但此解决方案无法解决我的问题,因为客户不希望更改字体大小(营销…)老实说,我不知道TextFrame2为什么会存在,它似乎与普通的TextFrame非常相似,但有一些不同的属性;在你的情况下,你需要的是溢出的等价物:隐藏,对吗?但我找不到一个选项(我已经搜索了大约两天)这是一个文本框,不是很明显吗?:这里,您可以如何使用枚举。