RawFrame

IShape.RawFrame-Eigenschaft

Gibt die Eigenschaften des rohen Formrahmens zurück oder legt sie fest. Lesen/Schreiben von IShapeFrame.

public IShapeFrame RawFrame { get; set; }

Beispiele

Code, der versucht, einen undefinierten Rahmen auf IShape.Frame zuzuweisen, macht im allgemeinen Fall keinen Sinn (insbesondere wenn die übergeordnete GroupShape mehrfach in andere GroupShape-n verschachtelt ist). Zum Beispiel:

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

oder

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

Solcher Code kann zu unklaren Situationen führen. Daher wurden Einschränkungen für die Verwendung undefinierter Werte für IShape.Frame hinzugefügt. Die Werte von x, y, width, height, flipH, flipV und rotationAngle müssen definiert sein (nicht float.NaN oder NullableBool.NotDefined). Der obige Beispielcode wirft jetzt eine ArgumentException. Dies gilt für diese Anwendungsfälle:

IShape shape = ...;
shape.Frame = ...; // kann nicht undefiniert sein

IShapeCollection shapes = ...;
// x, y, width, height Parameter können nicht float.NaN sein:
{
    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(...);
}

Aber die Eigenschaften des IShape.RawFrame-Rahmens können undefiniert sein. Dies macht Sinn, wenn die Form mit einem Platzhalter verknüpft ist. Dann werden undefinierte Rahmenwerte der Form aus dem übergeordneten Platzhalterrahmen überschrieben. Wenn es keinen übergeordneten Platzhalterrahmen für diese Form gibt, verwendet diese Form Standardwerte, wenn sie den effektiven Rahmen basierend auf ihrem IShape.RawFrame bewertet. Die Standardwerte sind 0 und NullableBool.False für x, y, width, height, flipH, flipV und rotationAngle. Zum Beispiel:

IShape shape = ...; // Form ist mit Platzhalter verknüpft
shape.RawFrame = new ShapeFrame(float.NaN, float.NaN, 100, float.NaN, NullableBool.NotDefined, NullableBool.NotDefined, 0); // jetzt erbt die Form x, y, height, flipH, flipV Werte vom Platzhalter und überschreibt width=100 und rotationAngle=0.

Siehe Auch