Shap.FitToTextSize默认是水平方向拉宽文本框,如何锁定宽度,只在垂直方向拉高文本框?
概要
Shape.FitToTextSize() 会根据文本内容自动调整形状的尺寸。官方文档没有提供单独控制宽度或高度的参数,只能让宽度和高度同时适配文本。
原因
该方法内部会计算文本所占的矩形区域,然后把形状的 Width 与 Height 都设为能够完整显示文本的最小值。当前 API 没有重载或属性可以仅在垂直方向扩展而保持宽度不变。
后续操作
- 自行保存并恢复宽度:在调用
FitToTextSize()之前记录形状的宽度,调用后再把宽度设回原值,从而只保留高度的自动调整效果。 - 手动计算高度:关闭自动适配(如将
TextFrameFormat.AutofitType设为Normal或NotDefined),根据字体大小、行距等自行计算所需的高度,只设置shape.Height,保持宽度不变。 - 参考官方文档或示例:不同版本的 Aspose.Slides 可能在属性名称或行为上有细微差别,建议查阅对应版本的 API 文档,确认是否已有新增方式实现仅垂直方向的自适应。
您能否提供一个包含所需文本框的示例Excel文件?要求文本框宽度固定,但高度可调整。请将文件压缩后发送给我们。收到后,我们会审核您的需求,并提供进一步的详细信息以及示例代码片段。
@lingtian
您可以使用如下代码达到预期效果:
int[] wh = Shape.CalculateTextSize();
Shape.Width = wh[0];
Shape.Height = wh[1];
// wrap text
Shape.TextBody.TextAlignment.IsTextWrapped = true;