Shape

Shape class

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

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

public sealed class Shape : ShapeBase

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

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

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

ИмяОписание
Adjustments { get; }Предоставляет доступ к необработанным значениям корректировки фигуры. Для фигуры, которая не содержит необработанных значений корректировки, возвращается пустая коллекция.
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; }Предоставляет доступ к форматированию шрифта этого объекта.
Glow { get; }Получает форматирование свечения для фигуры.
HasChart { get; }Возвратистинный если этоShape имеетChart .
HasChildNodes { get; }Возвратистинный если у этого узла есть дочерние узлы.
HasImage { get; }Возвратистинный если форма имеет байты изображения или ссылается на изображение.
HasSmartArt { get; }Возвратистинный если этоShape имеет объект SmartArt.
Height { get; set; }Возвращает или задает высоту содержащего блока фигуры.
HeightRelative { get; set; }Возвращает или задает значение, представляющее процент относительной высоты фигуры.
Hidden { 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; }Получает MarkupLanguage, используемый для этого графического объекта.
Name { get; set; }Получает или задает необязательное имя фигуры.
NextSibling { get; }Получает узел, следующий сразу за данным узлом.
override NodeType { get; }ВозвратShape .
OleFormat { get; }Предоставляет доступ к данным OLE фигуры. Для фигуры, которая не является объектом OLE или элементом управления ActiveX, возвращаетнулевой .
ParentNode { get; }Получает непосредственного родителя этого узла.
ParentParagraph { get; }Возвращает непосредственный родительский абзац.
PreviousSibling { get; }Получает узел, непосредственно предшествующий данному узлу.
Range { get; }ВозвращаетRangeобъект, представляющий часть документа, содержащуюся в этом узле.
Reflection { get; }Получает форматирование отражения для фигуры.
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; }Получает размер фигуры в точках.
SoftEdge { 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)Принимает посетителя.
override AcceptEnd(DocumentVisitor)Принимает посетителя для посещения конца фигуры.
override AcceptStart(DocumentVisitor)Принимает посетителя для посещения начала фигуры.
AdjustWithEffects(RectangleF)Добавляет к исходному прямоугольнику значения степени эффекта и возвращает конечный прямоугольник.
AppendChild<T>(T)Добавляет указанный узел в конец списка дочерних узлов для данного узла.
Clone(bool)Создает дубликат узла.
CreateNavigator()Создает навигатор, который можно использовать для перемещения и чтения узлов.
GetAncestor(NodeType)Получает первого предка указанногоNodeType .
GetAncestor(Type)Получает первого предка указанного типа объекта.
GetChild(NodeType, int, bool)Возвращает N-й дочерний узел, соответствующий указанному типу.
GetChildNodes(NodeType, bool)Возвращает живую коллекцию дочерних узлов, соответствующих указанному типу.
GetEnumerator()Обеспечивает поддержку для каждой итерации стиля по дочерним узлам этого узла.
GetShapeRenderer()Создает и возвращает объект, который можно использовать для преобразования этой фигуры в изображение.
override GetText()Получает текст этого узла и всех его дочерних узлов.
IndexOf(Node)Возвращает индекс указанного дочернего узла в массиве дочерних узлов.
InsertAfter<T>(T, Node)Вставляет указанный узел сразу после указанного ссылочного узла.
InsertBefore<T>(T, Node)Вставляет указанный узел непосредственно перед указанным ссылочным узлом.
LocalToParent(PointF)Преобразует значение из локального координатного пространства в координатное пространство родительской фигуры.
NextPreOrder(Node)Получает следующий узел в соответствии с алгоритмом обхода дерева предварительного порядка.
PrependChild<T>(T)Добавляет указанный узел в начало списка дочерних узлов для данного узла.
PreviousPreOrder(Node)Получает предыдущий узел в соответствии с алгоритмом обхода дерева предварительного порядка.
Remove()Удаляет себя из родителя.
RemoveAllChildren()Удаляет все дочерние узлы текущего узла.
RemoveChild<T>(T)Удаляет указанный дочерний узел.
RemoveSmartTags()Удаляет всеSmartTag узлы-потомки текущего узла.
SelectNodes(string)Выбирает список узлов, соответствующих выражению XPath.
SelectSingleNode(string)Выбирает первыйNode что соответствует выражению XPath.
ToString(SaveFormat)Экспортирует содержимое узла в строку указанного формата.
ToString(SaveOptions)Экспортирует содержимое узла в строку, используя указанные параметры сохранения.
UpdateSmartArtDrawing()Обновляет предварительно отрисованный рисунок SmartArt с помощью движка холодного рендеринга SmartArt от Aspose.Words.

Примечания

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

Важным свойством фигуры является ееShapeTypeФигуры различных типов могут иметь разные возможности в документе 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);

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