Shape

Shape class

Представляет объект в слое рисования, например автофигуру, текстовое поле, произвольную форму, объект OLE, элемент управления ActiveX или изображение.

public sealed class Shape : ShapeBase

Конструкторы

Имя Описание
Shape(DocumentBase, ShapeType) Создает новый объект формы.

Характеристики

Имя Описание
AllowOverlap { get; set; } Получает или задает значение, указывающее, может ли эта фигура перекрывать другие фигуры.
AlternativeText { get; set; } Определяет альтернативный текст, который будет отображаться вместо графики.
AnchorLocked { get; set; } Указывает, заблокирована ли привязка фигуры.
AspectRatioLocked { get; set; } Указывает, заблокировано ли соотношение сторон фигуры.
BehindText { get; set; } Указывает, находится ли фигура ниже или выше текста.
Bottom { get; } Получает положение нижнего края содержащего блока фигуры.
Bounds { get; set; } Получает или задает расположение и размер содержащего блока фигуры.
BoundsInPoints { get; } Получает расположение и размер содержащего блока фигуры в пунктах относительно привязки самой верхней фигуры.
BoundsWithEffects { get; } Получает окончательный размер, который имеет этот объект формы после применения эффектов рисования. Значение измеряется в пунктах.
CanHaveImage { get; } Возвращает true, если тип фигуры позволяет фигуре иметь изображение.
Chart { get; } Предоставляет доступ к свойствам диаграммы, если эта фигура имеет Chart.
ChildNodes { get; } Получает все непосредственные дочерние узлы этого узла.
CoordOrigin { get; set; } Координаты в верхнем левом углу содержащего блока этой формы.
CoordSize { get; set; } Ширина и высота координатного пространства внутри содержащего блока этой фигуры.
Count { get; } Получает количество непосредственных дочерних элементов этого узла.
CustomNodeId { get; set; } Указывает идентификатор пользовательского узла.
DistanceBottom { get; set; } Возвращает или задает расстояние (в пунктах) между текстом документа и нижним краем фигуры.
DistanceLeft { get; set; } Возвращает или задает расстояние (в пунктах) между текстом документа и левым краем фигуры.
DistanceRight { get; set; } Возвращает или задает расстояние (в пунктах) между текстом документа и правым краем фигуры.
DistanceTop { get; set; } Возвращает или задает расстояние (в пунктах) между текстом документа и верхним краем фигуры.
virtual Document { get; } Получает документ, которому принадлежит этот узел.
ExtrusionEnabled { get; } Возвращает true, если включен эффект выдавливания.
Fill { get; } Получает формат заливки для фигуры.
FillColor { get; set; } Определяет цвет кисти, заполняющий замкнутый контур фигуры.
Filled { get; set; } Определяет, будет ли заполнен замкнутый контур фигуры.
FirstChild { get; } Получает первого потомка узла.
FirstParagraph { get; } Получает первый абзац в форме.
FlipOrientation { get; set; } Переключает ориентацию фигуры.
Font { get; } Предоставляет доступ к форматированию шрифта этого объекта.
HasChart { get; } Возвращает true, если эта фигура имеетChart .
HasChildNodes { get; } Возвращает true, если у этого узла есть дочерние узлы.
HasImage { get; } Возвращает true, если фигура содержит байты изображения или ссылается на изображение.
HasSmartArt { get; } Возвращает true, если у этой формы есть объект SmartArt.
Height { get; set; } Получает или задает высоту содержащего блока фигуры.
HorizontalAlignment { get; set; } Определяет горизонтальное расположение фигуры.
HorizontalRuleFormat { get; } Предоставляет доступ к свойствам фигуры горизонтальной линейки. Для фигуры, не являющейся горизонтальной линейкой, возвращает null.
HRef { get; set; } Получает или задает полный адрес гиперссылки для фигуры.
ImageData { get; } Предоставляет доступ к изображению фигуры. Возвращает значение null, если фигура не может иметь изображение.
override IsComposite { get; } Возвращает true, так как этот узел может иметь дочерние узлы.
IsDecorative { get; set; } Получает или задает флаг, указывающий, является ли фигура декоративной в документе.
IsDeleteRevision { get; } Возвращает значение true, если этот объект был удален в Microsoft Word при включенном отслеживании изменений.
IsGroup { get; } Возвращает true, если это форма группы.
IsHorizontalRule { get; } Возвращает true, если эта фигура является горизонтальной линейкой.
IsImage { get; } Возвращает true, если эта форма является фигурой изображения.
IsInline { get; } Быстрый способ определить, расположена ли эта фигура на одной линии с текстом.
IsInsertRevision { get; } Возвращает значение true, если этот объект был вставлен в Microsoft Word при включенном отслеживании изменений.
IsLayoutInCell { get; set; } Получает или задает флаг, указывающий, отображается ли фигура внутри таблицы или за ее пределами.
IsMoveFromRevision { get; } Возвращает истинный если этот объект был перемещен (удален) в Microsoft Word при включенном отслеживании изменений.
IsMoveToRevision { get; } Возвращает истинный если этот объект был перемещен (вставлен) в Microsoft Word при включенном отслеживании изменений.
IsSignatureLine { get; } Указывает, что форма является SignatureLine.
IsTopLevel { get; } Возвращает true, если эта фигура не является дочерней фигурой группы.
IsWordArt { get; } Возвращает значение true, если эта фигура является объектом WordArt.
LastChild { get; } Получает последний дочерний элемент узла.
LastParagraph { get; } Получает последний абзац в форме.
Left { get; set; } Получает или задает положение левого края содержащего блока фигуры.
MarkupLanguage { get; } Получает язык разметки, используемый для этого графического объекта.
Name { get; set; } Получает или задает необязательное имя формы.
NextSibling { get; } Получает узел, следующий сразу за этим узлом.
override NodeType { get; } ВозвращаетShape .
OleFormat { get; } Предоставляет доступ к данным OLE формы. Для фигуры, которая не является объектом OLE или элементом управления ActiveX, возвращает null.
ParentNode { get; } Получает непосредственного родителя этого узла.
ParentParagraph { get; } Возвращает ближайший родительский абзац.
PreviousSibling { get; } Получает узел, непосредственно предшествующий этому узлу.
Range { get; } Возвращает Диапазон объект, представляющий часть документа, содержащегося в этом узле.
RelativeHorizontalPosition { get; set; } Определяет относительное положение фигуры по горизонтали.
RelativeVerticalPosition { get; set; } Указывает, относительно чего фигура расположена вертикально.
Right { get; } Получает положение правого края содержащего блока фигуры.
Rotation { get; set; } Определяет угол (в градусах), на который поворачивается фигура. Положительное значение соответствует углу поворота по часовой стрелке.
ScreenTip { get; set; } Определяет текст, отображаемый при наведении указателя мыши на фигуру.
ShadowEnabled { get; } Возвращает true, если включен эффект тени.
ShadowFormat { get; } Получает форматирование тени для фигуры.
ShapeType { get; } Получает тип фигуры.
SignatureLine { get; } получаетSignatureLine объект, если фигура является линией подписи. Возвращает нулевой иначе.
SizeInPoints { get; } Получает размер фигуры в точках.
StoryType { get; } ВозвращаетTextbox .
Stroke { get; } Определяет обводку фигуры.
StrokeColor { get; set; } Определяет цвет обводки.
Stroked { get; set; } Определяет, будет ли обведен контур.
StrokeWeight { get; set; } Определяет толщину кисти, которая обводит контур фигуры в пунктах.
Target { get; set; } Получает или задает целевой кадр для гиперссылки формы.
TextBox { get; } Определяет атрибуты, определяющие способ отображения текста в фигуре.
TextPath { get; } Определяет текст текстового пути (объекта WordArt).
Title { get; set; } Получает или задает заголовок (заголовок) текущего объекта формы.
Top { get; set; } Получает или задает положение верхнего края содержащего блока фигуры.
VerticalAlignment { get; set; } Определяет вертикальное расположение фигуры.
Width { get; set; } Получает или задает ширину содержащего блока фигуры.
WrapSide { get; set; } Указывает, как текст оборачивает фигуру.
WrapType { get; set; } Определяет, является ли фигура встроенной или плавающей. Для плавающих фигур определяет режим обтекания текста вокруг фигуры.
ZOrder { get; set; } Определяет порядок отображения перекрывающихся фигур.

Методы

Имя Описание
override Accept(DocumentVisitor) Принимает посетителя.
AdjustWithEffects(RectangleF) Добавляет к исходному прямоугольнику значения экстента эффекта и возвращает окончательный прямоугольник.
AppendChild(Node) Добавляет указанный узел в конец списка дочерних узлов для этого узла.
Clone(bool) Создает дубликат узла.
CreateNavigator() Зарезервировано для системного использования. IXPathNavigable.
FetchInheritedShapeAttr(int) Зарезервировано для системного использования. IShapeAttrSource.
FetchShapeAttr(int) Зарезервировано для системного использования. IShapeAttrSource.
GetAncestor(NodeType) Получает первого предка указанногоNodeType .
GetAncestor(Type) Получает первого предка указанного типа объекта.
GetChild(NodeType, int, bool) Возвращает N-й дочерний узел, соответствующий указанному типу.
GetChildNodes(NodeType, bool) Возвращает динамическую коллекцию дочерних узлов, соответствующих указанному типу.
GetDirectShapeAttr(int) Зарезервировано для системного использования. IShapeAttrSource.
GetEnumerator() Обеспечивает поддержку для каждой итерации стиля над дочерними узлами этого узла.
GetShapeRenderer() Создает и возвращает объект, который можно использовать для преобразования этой формы в изображение.
override GetText() Получает текст этого узла и всех его дочерних элементов.
IndexOf(Node) Возвращает индекс указанного дочернего узла в массиве дочерних узлов.
InsertAfter(Node, Node) Вставляет указанный узел сразу после указанного ссылочного узла.
InsertBefore(Node, Node) Вставляет указанный узел непосредственно перед указанным ссылочным узлом.
LocalToParent(PointF) Преобразует значение из локального координатного пространства в координатное пространство родительской фигуры.
NextPreOrder(Node) Получает следующий узел в соответствии с алгоритмом обхода дерева предварительного порядка.
PrependChild(Node) Добавляет указанный узел в начало списка дочерних узлов для этого узла.
PreviousPreOrder(Node) Получает предыдущий узел в соответствии с алгоритмом обхода дерева предварительного порядка.
Remove() Удаляет себя из родителя.
RemoveAllChildren() Удаляет все дочерние узлы текущего узла.
RemoveChild(Node) Удаляет указанный дочерний узел.
RemoveShapeAttr(int) Зарезервировано для системного использования. IShapeAttrSource.
RemoveSmartTags() Удаляет всеSmartTag узлы-потомки текущего узла.
SelectNodes(string) Выбирает список узлов, соответствующих выражению XPath.
SelectSingleNode(string) Выбирает первый узел, соответствующий выражению XPath.
SetShapeAttr(int, object) Зарезервировано для системного использования. IShapeAttrSource.
ToString(SaveFormat) Экспортирует содержимое узла в строку в указанном формате.
ToString(SaveOptions) Экспортирует содержимое узла в строку, используя указанные параметры сохранения.
UpdateSmartArtDrawing() Обновляет предварительно обработанный рисунок SmartArt с помощью механизма холодного рендеринга Aspose.Words SmartArt.

Примечания

С использованиемShape class вы можете создавать или изменять фигуры в документе Microsoft Word.

Важным свойством формы является ееShapeType. Формы типов different могут иметь разные возможности в документе Word. Например, только image и OLE shape могут содержать внутри себя изображения. Большинство фигур могут иметь текст, но не все.

Фигуры, которые могут иметь текст, могут содержатьParagraph и Table узлы как дети.

Примеры

Показывает, как вставить плавающее изображение в центр страницы.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Вставьте плавающее изображение, которое будет отображаться за перекрывающимся текстом, и выровняйте его по центру страницы.
Shape shape = builder.InsertImage(ImageDir + "Logo.jpg");
shape.WrapType = WrapType.None;
shape.BehindText = true;
shape.RelativeHorizontalPosition = RelativeHorizontalPosition.Page;
shape.RelativeVerticalPosition = RelativeVerticalPosition.Page;
shape.HorizontalAlignment = HorizontalAlignment.Center;
shape.VerticalAlignment = VerticalAlignment.Center;

doc.Save(ArtifactsDir + "Image.CreateFloatingPageCenter.docx");

Показывает, как извлекать изображения из документа и сохранять их в локальной файловой системе в виде отдельных файлов.

Document doc = new Document(MyDir + "Images.docx");

// Получить набор фигур из документа,
// и сохранить данные изображения каждой фигуры с изображением в виде файла в локальной файловой системе.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);

Assert.AreEqual(9, shapes.Count(s => ((Shape)s).HasImage));

int imageIndex = 0;
foreach (Shape shape in shapes.OfType<Shape>())
{
    if (shape.HasImage)
    {
        // Данные изображения фигур могут содержать изображения многих возможных форматов изображений. 
        // Мы можем определить расширение файла для каждого изображения автоматически, исходя из его формата.
        string imageFileName =
            $"File.ExtractImages.{imageIndex}{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}";
        shape.ImageData.Save(ArtifactsDir + imageFileName);
        imageIndex++;
    }
}

Показывает, как удалить все фигуры из документа.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Вставьте две фигуры вместе с групповой фигурой, внутри которой находится еще одна фигура.
builder.InsertShape(ShapeType.Rectangle, 400, 200);
builder.InsertShape(ShapeType.Star, 300, 300);

GroupShape group = new GroupShape(doc);
group.Bounds = new RectangleF(100, 50, 200, 100);
group.CoordOrigin = new Point(-1000, -500);

Shape subShape = new Shape(doc, ShapeType.Cube);
subShape.Width = 500;
subShape.Height = 700;
subShape.Left = 0;
subShape.Top = 0;

group.AppendChild(subShape);
builder.InsertNode(group);

Assert.AreEqual(3, doc.GetChildNodes(NodeType.Shape, true).Count);
Assert.AreEqual(1, doc.GetChildNodes(NodeType.GroupShape, true).Count);

// Удалить все узлы Shape из документа.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);
shapes.Clear();

// Все фигуры исчезли, но фигура группы осталась в документе.
Assert.AreEqual(1, doc.GetChildNodes(NodeType.GroupShape, true).Count);
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Shape, true).Count);

// Удалить все групповые фигуры по отдельности.
NodeCollection groupShapes = doc.GetChildNodes(NodeType.GroupShape, true);
groupShapes.Clear();

Assert.AreEqual(0, doc.GetChildNodes(NodeType.GroupShape, true).Count);
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Shape, true).Count);

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