RawFrame

Shape.RawFrame 属性

返回或设置原始形状框架的属性。可读写 IShapeFrame

public IShapeFrame RawFrame { get; set; }

示例

尝试将未定义框架分配给 IShape.Frame 的代码在一般情况下是没有意义的(特别是在父 GroupShape 多层嵌套到其他 GroupShape 的情况下)。例如:

IShape shape = ...;
shape.Frame = new ShapeFrame(float.NaN, float.NaN, float.NaN, float.NaN, NullableBool.NotDefined, NullableBool.NotDefined, float.NaN);

或者

slide.Shapes.AddAutoShape(ShapeType.RoundCornerRectangle, float.NaN, float.NaN, float.NaN, float.NaN);

这样的代码可能会导致不明确的情况。因此,对于 IShape.Frame 的未定义值使用添加了限制。x、y、width、height、flipH、flipV 和 rotationAngle 的值必须被定义(不能是 float.NaN 或 NullableBool.NotDefined)。上述示例代码现在会抛出 ArgumentException 异常。这适用于以下用例:

IShape shape = ...;
shape.Frame = ...; // 不能未定义

IShapeCollection shapes = ...;
// x、y、width、height 参数不能是 float.NaN:
{
    shapes.AddAudioFrameCD(...);
    shapes.AddAudioFrameEmbedded(...);
    shapes.AddAudioFrameLinked(...);
    shapes.AddAutoShape(...);
    shapes.AddChart(...);
    shapes.AddConnector(...);
    shapes.AddOleObjectFrame(...);
    shapes.AddPictureFrame(...);
    shapes.AddSmartArt(...);
    shapes.AddTable(...);
    shapes.AddVideoFrame(...);
    shapes.InsertAudioFrameEmbedded(...);
    shapes.InsertAudioFrameLinked(...);
    shapes.InsertAutoShape(...);
    shapes.InsertChart(...);
    shapes.InsertConnector(...);
    shapes.InsertOleObjectFrame(...);
    shapes.InsertPictureFrame(...);
    shapes.InsertTable(...);
    shapes.InsertVideoFrame(...);
}

但 IShape.RawFrame 框架属性可以是未定义的。当形状链接到占位符时,这是有意义的。然后,未定义的形状框架值从父占位符形状继承。如果该形状没有父占位符形状,则该形状在评估其 IShape.RawFrame 时使用默认值。默认值为 x、y、width、height、flipH、flipV 和 rotationAngle 的值为 0 和 NullableBool.False。例如:

IShape shape = ...; // 形状链接到占位符
shape.RawFrame = new ShapeFrame(float.NaN, float.NaN, 100, float.NaN, NullableBool.NotDefined, NullableBool.NotDefined, 0); // 现在形状从占位符继承 x、y、高度、flipH、flipV 值,并覆盖宽度=100 和 rotationAngle=0。

另请参阅