如何获得msoShapeRoundedRectangularCallout上的标注箭头的方向?

时间:2018-12-11 08:18:11

标签: c# powerpoint office-interop

我正在保存演示文稿中的形状图像,但无法弄清楚如何获取带有标注的圆角矩形上的标注箭头的距离和方向。 MSOautoshape 106:黄色角位于左上角,但由于调用,图像保存的图像已偏移。

enter image description here

var tempString = shape.AutoShapeType.ToString();
if ( tempString.Contains("Callout")){
Debug.WriteLine(shape.Callout.Angle);
}

此代码引发一个错误,该错误仅适用于“ LINE”标注。我有点不知如何解决这一问题。请帮忙。

1 个答案:

答案 0 :(得分:1)

{ "query": { "term": { "message.length": 3 } } } 属性确实仅对“线路标注”有效:

enter image description here

问题中显示的形状使用Callout属性来读取/控制形状的设置:

Adjustments

有必要尝试使用特定的Word.Shape shp = ActiveDocument.Shapes[1]; Word.Adjustments = adj = shp.Adjustments; for (int p = 1; p<=adj.Count; p++) { Debug.Print(adj.Item[p].ToString()); } 和各种生成的设置来确定各种值表示什么。在具有指定Shape的测试中,我得到了三个调整值。第一个显示指示标注的角度/偏移量,第二个显示到矩形的长度/距离,第三个我无法确定(是静态的)。

从对象模型语言参考:

  

调整类型的有效值

     

线性(水平或垂直)

     

通常值0.0代表形状的左边缘或上边缘   值1.0表示形状的右边缘或下边缘。   有效值对应于您可以对形状进行的有效调整   手动。例如,如果您只能将调节手柄拉半   手动越过形状,最大值对应   调整为0.5。对于标注等形状,其中的值   0.0和1.0代表矩形的界限,该界限由标注行的起点和终点,负数和   大于1.0的数字是有效值。

     

径向

     

调整值1.0对应于形状的宽度。最大值是   0.5,或形状的一半。

     

角度

     

值以度表示。如果您指定的值超出范围– 180至180,则该值   将被标准化到该范围内。