Shape

Shape class

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

Чтобы узнать больше, посетитеРабота с фигурами статья документации.

public sealed class Shape : ShapeBase

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

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

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

ИмяОписание
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; }Возвращаетистинный если тип фигуры позволяет фигуре иметь изображение.
Chart { get; }Предоставляет доступ к свойствам диаграммы, если эта фигура имеетChart .
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; }Возвращаетистинный если эффект выдавливания включен.
Fill { get; }Получает форматирование заливки фигуры.
FillColor { get; set; }Определяет цвет кисти, заполняющей замкнутый контур фигуры.
Filled { get; set; }Определяет, будет ли заполнен замкнутый контур фигуры.
FirstChild { get; }Получает первого дочернего элемента узла.
FirstParagraph { get; }Получает первый абзац фигуры.
FlipOrientation { get; set; }Переключает ориентацию фигуры.
Font { get; }Предоставляет доступ к форматированию шрифта этого объекта.
HasChart { get; }Возвращаетистинный если этоShape имеетChart .
HasChildNodes { get; }Возвращаетистинный если у этого узла есть дочерние узлы.
HasImage { get; }Возвращаетистинный если фигура содержит байты изображения или связывает изображение.
HasSmartArt { get; }Возвращаетистинный если этоShape имеет объект SmartArt.
Height { get; set; }Получает или задает высоту содержащего блока фигуры.
HeightRelative { get; set; }Получает или задает значение, представляющее процент относительной высоты фигуры.
HorizontalAlignment { get; set; }Указывает, как фигура располагается по горизонтали.
HorizontalRuleFormat { get; }Предоставляет доступ к свойствам фигуры горизонтальной линейки. Для фигуры, не являющейся горизонтальной линейкой, возвращаетсянулевой .
HRef { get; set; }Получает или задает полный адрес гиперссылки для фигуры.
ImageData { get; }Предоставляет доступ к изображению фигуры. Возвращаетнулевой если фигура не может иметь изображение.
override IsComposite { get; }Возвращаетистинный поскольку этот узел может иметь дочерние узлы.
IsDecorative { get; set; }Получает или задает флаг, указывающий, является ли фигура декоративной в документе.
IsDeleteRevision { get; }Возвращает true, если этот объект был удален в Microsoft Word при включенном отслеживании изменений.
IsGroup { get; }Возвращаетистинный если это фигура группы.
IsHorizontalRule { get; }Возвращаетистинный если эта фигура является горизонтальной линейкой.
IsImage { get; }Возвращаетистинный если эта фигура является формой изображения.
IsInline { get; }Быстрый способ определить, расположена ли эта фигура внутри текста.
IsInsertRevision { get; }Возвращает true, если этот объект был вставлен в Microsoft Word при включенном отслеживании изменений.
IsLayoutInCell { get; set; }Получает или задает флаг, указывающий, отображается ли фигура внутри таблицы или за ее пределами.
IsMoveFromRevision { get; }Возвращаетистинный если этот объект был перемещен (удален) в Microsoft Word при включенном отслеживании изменений.
IsMoveToRevision { get; }Возвращаетистинный если этот объект был перемещен (вставлен) в Microsoft Word при включенном отслеживании изменений.
IsSignatureLine { get; }Указывает, что фигура являетсяSignatureLine .
IsTopLevel { get; }Возвращаетистинныйесли эта фигура не является дочерней фигурой группы.
IsWordArt { get; }Возвращаетистинный если эта фигура является объектом WordArt.
LastChild { get; }Получает последнего дочернего узла узла.
LastParagraph { get; }Получает последний абзац фигуры.
Left { get; set; }Получает или задает положение левого края содержащего блока фигуры.
LeftRelative { get; set; }Получает или задает значение, которое представляет относительное левое положение фигуры в процентах.
MarkupLanguage { get; }Получает язык разметки, используемый для этого графического объекта.
Name { get; set; }Получает или задает необязательное имя фигуры.
NextSibling { get; }Получает узел, следующий сразу за этим узлом.
override NodeType { get; }ВозвращаетShape .
OleFormat { get; }Обеспечивает доступ к данным OLE фигуры. Для фигуры, которая не является объектом OLE или элементом управления ActiveX, возвращаетсянулевой .
ParentNode { get; }Получает непосредственного родителя этого узла.
ParentParagraph { get; }Возвращает непосредственный родительский абзац.
PreviousSibling { get; }Получает узел, непосредственно предшествующий этому узлу.
Range { get; }ВозвращаетRange объект, представляющий часть документа, содержащуюся в этом узле.
RelativeHorizontalPosition { get; set; }Указывает относительно того, как фигура расположена по горизонтали.
RelativeHorizontalSize { get; set; }Получает или задает значение относительного размера фигуры в горизонтальном направлении.
RelativeVerticalPosition { get; set; }Указывает относительно того, как фигура расположена по вертикали.
RelativeVerticalSize { get; set; }Получает или задает значение относительного размера фигуры по вертикали.
Right { get; }Получает позицию правого края содержащего блока фигуры.
Rotation { get; set; }Определяет угол (в градусах), на который поворачивается фигура. Положительное значение соответствует углу поворота по часовой стрелке.
ScreenTip { get; set; }Определяет текст, отображаемый при наведении указателя мыши на фигуру.
ShadowEnabled { get; }Возвращаетистинный если эффект тени включен.
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; }Получает или задает положение верхнего края содержащего блока фигуры.
TopRelative { get; set; }Получает или задает значение, которое представляет относительное верхнее положение фигуры в процентах.
VerticalAlignment { get; set; }Указывает, как фигура располагается вертикально.
Width { get; set; }Получает или задает ширину содержащего блока фигуры.
WidthRelative { get; set; }Получает или задает значение, представляющее процент относительной ширины фигуры.
WrapSide { get; set; }Указывает, как текст обтекает фигуру.
WrapType { get; set; }Определяет, является ли фигура строковой или плавающей. Для плавающих фигур определяет режим обтекания текста вокруг фигуры.
ZOrder { get; set; }Определяет порядок отображения перекрывающихся фигур.

Методы

ИмяОписание
override Accept(DocumentVisitor)Принимает посетителя.
AdjustWithEffects(RectangleF)Добавляет к исходному прямоугольнику значения экстента эффекта и возвращает окончательный прямоугольник.
AppendChild(Node)Добавляет указанный узел в конец списка дочерних узлов для этого узла.
Clone(bool)Создает дубликат узла.
CreateNavigator()Создает навигатор, который можно использовать для перемещения и чтения узлов.
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(NodeNode)Вставляет указанный узел сразу после указанного ссылочного узла.
InsertBefore(NodeNode)Вставляет указанный узел непосредственно перед указанным ссылочным узлом.
LocalToParent(PointF)Преобразует значение из локального координатного пространства в координатное пространство родительской фигуры.
NextPreOrder(Node)Получает следующий узел в соответствии с алгоритмом обхода дерева предварительного заказа.
PrependChild(Node)Добавляет указанный узел в начало списка дочерних узлов для этого узла.
PreviousPreOrder(Node)Получает предыдущий узел в соответствии с алгоритмом обхода дерева предварительного заказа.
Remove()Удаляет себя от родителя.
RemoveAllChildren()Удаляет все дочерние узлы текущего узла.
RemoveChild(Node)Удаляет указанный дочерний узел.
RemoveShapeAttr(int)Зарезервировано для использования системой. IShapeAttrSource.
RemoveSmartTags()Удаляет всеSmartTagузлы-потомки текущего узла.
SelectNodes(string)Выбирает список узлов, соответствующих выражению XPath.
SelectSingleNode(string)Выбирает первыйNode которое соответствует выражению XPath.
SetShapeAttr(int, object)Зарезервировано для использования системой. IShapeAttrSource.
ToString(SaveFormat)Экспортирует содержимое узла в строку указанного формата.
ToString(SaveOptions)Экспортирует содержимое узла в строку, используя указанные параметры сохранения.
UpdateSmartArtDrawing()Обновляет предварительно обработанный рисунок SmartArt с помощью механизма холодного рендеринга SmartArt Aspose.Words.

Примечания

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

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

Фигуры, которые могут содержать текст, могут содержатьParagraph and 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);

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