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. Значения по умолчанию - 0 и NullableBool.False для x, y, width, height, flipH, flipV и rotationAngle. Например:

IShape shape = ...; // форма связана с заполнителем
shape.RawFrame = new ShapeFrame(float.NaN, float.NaN, 100, float.NaN, NullableBool.NotDefined, NullableBool.NotDefined, 0); // теперь форма унаследует значения x, y, height, flipH, flipV от заполнителя и переопределяет width=100 и rotationAngle=0.

Смотрите также