Shape

Shape class

Representa un objeto en la capa de dibujo, como una autoforma, un cuadro de texto, una forma libre, un objeto OLE, un control ActiveX o una imagen.

Para obtener más información, visite elTrabajar con formas artículo de documentación.

public sealed class Shape : ShapeBase

Constructores

NombreDescripción
Shape(DocumentBaseShapeType)Crea un nuevo objeto de forma.

Propiedades

NombreDescripción
AllowOverlap { get; set; }Obtiene o establece un valor que especifica si esta forma puede superponerse a otras formas.
AlternativeText { get; set; }Define texto alternativo que se mostrará en lugar de un gráfico.
AnchorLocked { get; set; }Especifica si el ancla de la forma está bloqueada.
AspectRatioLocked { get; set; }Especifica si la relación de aspecto de la forma está bloqueada.
BehindText { get; set; }Especifica si la forma está debajo o encima del texto.
Bottom { get; }Obtiene la posición del borde inferior del bloque contenedor de la forma.
Bounds { get; set; }Obtiene o establece la ubicación y el tamaño del bloque contenedor de la forma.
BoundsInPoints { get; }Obtiene la ubicación y el tamaño del bloque contenedor de la forma en puntos, en relación con el ancla de la forma superior.
BoundsWithEffects { get; }Obtiene la extensión final que tiene este objeto de forma después de aplicar efectos de dibujo. El valor se mide en puntos.
CanHaveImage { get; }Devolucionesverdadero si el tipo de forma permite que la forma tenga una imagen.
Chart { get; }Proporciona acceso a las propiedades del gráfico si esta forma tiene unChart .
CoordOrigin { get; set; }Las coordenadas en la esquina superior izquierda del bloque que contiene esta forma.
CoordSize { get; set; }El ancho y alto del espacio de coordenadas dentro del bloque contenedor de esta forma.
Count { get; }Obtiene el número de hijos inmediatos de este nodo.
CustomNodeId { get; set; }Especifica el identificador de nodo personalizado.
DistanceBottom { get; set; }Devuelve o establece la distancia (en puntos) entre el texto del documento y el borde inferior de la forma.
DistanceLeft { get; set; }Devuelve o establece la distancia (en puntos) entre el texto del documento y el borde izquierdo de la forma.
DistanceRight { get; set; }Devuelve o establece la distancia (en puntos) entre el texto del documento y el borde derecho de la forma.
DistanceTop { get; set; }Devuelve o establece la distancia (en puntos) entre el texto del documento y el borde superior de la forma.
virtual Document { get; }Obtiene el documento al que pertenece este nodo.
ExtrusionEnabled { get; }Devolucionesverdadero si un efecto de extrusión está habilitado.
Fill { get; }Obtiene el formato de relleno para la forma.
FillColor { get; set; }Define el color del pincel que rellena el trazado cerrado de la forma.
Filled { get; set; }Determina si se rellenará el camino cerrado de la forma.
FirstChild { get; }Obtiene el primer hijo del nodo.
FirstParagraph { get; }Obtiene el primer párrafo de la forma.
FlipOrientation { get; set; }Cambia la orientación de una forma.
Font { get; }Proporciona acceso al formato de fuente de este objeto.
HasChart { get; }Devolucionesverdadero si estoShape tiene unChart .
HasChildNodes { get; }Devolucionesverdadero si este nodo tiene nodos secundarios.
HasImage { get; }Devolucionesverdadero si la forma tiene bytes de imagen o vincula una imagen.
HasSmartArt { get; }Devolucionesverdadero si estoShape tiene un objeto SmartArt.
Height { get; set; }Obtiene o establece la altura del bloque contenedor de la forma.
HeightRelative { get; set; }Obtiene o establece el valor que representa el porcentaje de la altura relativa de la forma.
HorizontalAlignment { get; set; }Especifica cómo se coloca la forma horizontalmente.
HorizontalRuleFormat { get; }Proporciona acceso a las propiedades de la forma de regla horizontal. Para una forma que no es una regla horizontal, devuelvenulo .
HRef { get; set; }Obtiene o establece la dirección completa del hipervínculo para una forma.
ImageData { get; }Proporciona acceso a la imagen de la forma. Devuelvenulo si la forma no puede tener una imagen.
override IsComposite { get; }Devolucionesverdadero ya que este nodo puede tener nodos secundarios.
IsDecorative { get; set; }Obtiene o establece la bandera que especifica si la forma es decorativa en el documento.
IsDeleteRevision { get; }Devuelve verdadero si este objeto se eliminó en Microsoft Word mientras el seguimiento de cambios estaba habilitado.
IsGroup { get; }Devolucionesverdadero si se trata de una forma de grupo.
IsHorizontalRule { get; }Devolucionesverdadero si esta forma es una regla horizontal.
IsImage { get; }Devolucionesverdadero si esta forma es una forma de imagen.
IsInline { get; }Una forma rápida de determinar si esta forma está colocada en línea con el texto.
IsInsertRevision { get; }Devuelve verdadero si este objeto se insertó en Microsoft Word mientras el seguimiento de cambios estaba habilitado.
IsLayoutInCell { get; set; }Obtiene o establece una bandera que indica si la forma se muestra dentro o fuera de una tabla.
IsMoveFromRevision { get; }Devolucionesverdadero si este objeto se movió (eliminó) en Microsoft Word mientras el seguimiento de cambios estaba habilitado.
IsMoveToRevision { get; }Devolucionesverdadero si este objeto se movió (insertó) en Microsoft Word mientras el seguimiento de cambios estaba habilitado.
IsSignatureLine { get; }Indica que la forma es unaSignatureLine .
IsTopLevel { get; }Devolucionesverdaderosi esta forma no es hija de una forma de grupo.
IsWordArt { get; }Devolucionesverdadero si esta forma es un objeto de WordArt.
LastChild { get; }Obtiene el último hijo del nodo.
LastParagraph { get; }Obtiene el último párrafo de la forma.
Left { get; set; }Obtiene o establece la posición del borde izquierdo del bloque contenedor de la forma.
LeftRelative { get; set; }Obtiene o establece el valor que representa la posición relativa izquierda de la forma en porcentaje.
MarkupLanguage { get; }Obtiene MarkupLanguage utilizado para este objeto gráfico.
Name { get; set; }Obtiene o establece el nombre de la forma opcional.
NextSibling { get; }Obtiene el nodo que sigue inmediatamente a este nodo.
override NodeType { get; }DevolucionesShape .
OleFormat { get; }Proporciona acceso a los datos OLE de una forma. Para una forma que no es un objeto OLE o control ActiveX, devuelvenulo .
ParentNode { get; }Obtiene el padre inmediato de este nodo.
ParentParagraph { get; }Devuelve el párrafo padre inmediato.
PreviousSibling { get; }Obtiene el nodo inmediatamente anterior a este nodo.
Range { get; }Devuelve unRange objeto que representa la parte de un documento contenido en este nodo.
RelativeHorizontalPosition { get; set; }Especifica en relación con la posición horizontal de la forma.
RelativeHorizontalSize { get; set; }Obtiene o establece el valor del tamaño relativo de la forma en dirección horizontal.
RelativeVerticalPosition { get; set; }Especifica en relación con la posición vertical de la forma.
RelativeVerticalSize { get; set; }Obtiene o establece el valor del tamaño relativo de la forma en dirección vertical.
Right { get; }Obtiene la posición del borde derecho del bloque contenedor de la forma.
Rotation { get; set; }Define el ángulo (en grados) en el que se gira una forma. El valor positivo corresponde al ángulo de rotación en el sentido de las agujas del reloj.
ScreenTip { get; set; }Define el texto que se muestra cuando el puntero del mouse se mueve sobre la forma.
ShadowEnabled { get; }Devolucionesverdadero si un efecto de sombra está habilitado.
ShadowFormat { get; }Obtiene el formato de sombra para la forma.
ShapeType { get; }Obtiene el tipo de forma.
SignatureLine { get; }ObtieneSignatureLine objeto si la forma es una línea de firma. Devolucionesnulo de lo contrario.
SizeInPoints { get; }Obtiene el tamaño de la forma en puntos.
StoryType { get; }DevolucionesTextbox .
Stroke { get; }Define un trazo para una forma.
StrokeColor { get; set; }Define el color de un trazo.
Stroked { get; set; }Define si se trazará el camino.
StrokeWeight { get; set; }Define el grosor del pincel que traza el trazado de una forma en puntos.
Target { get; set; }Obtiene o establece el marco de destino para el hipervínculo de forma.
TextBox { get; }Define atributos que especifican cómo se muestra el texto en una forma.
TextPath { get; }Define el texto de la ruta de texto (de un objeto de WordArt).
Title { get; set; }Obtiene o establece el título (título) del objeto de forma actual.
Top { get; set; }Obtiene o establece la posición del borde superior del bloque contenedor de la forma.
TopRelative { get; set; }Obtiene o establece el valor que representa la posición superior relativa de la forma en porcentaje.
VerticalAlignment { get; set; }Especifica cómo se coloca la forma verticalmente.
Width { get; set; }Obtiene o establece el ancho del bloque contenedor de la forma.
WidthRelative { get; set; }Obtiene o establece el valor que representa el porcentaje del ancho relativo de la forma.
WrapSide { get; set; }Especifica cómo se ajusta el texto alrededor de la forma.
WrapType { get; set; }Define si la forma está en línea o flotante. Para formas flotantes, define el modo de ajuste del texto alrededor de la forma.
ZOrder { get; set; }Determina el orden de visualización de las formas superpuestas.

Métodos

NombreDescripción
override Accept(DocumentVisitor)Acepta un visitante.
AdjustWithEffects(RectangleF)Agrega al rectángulo de origen los valores de la extensión del efecto y devuelve el rectángulo final.
AppendChild(Node)Agrega el nodo especificado al final de la lista de nodos secundarios para este nodo.
Clone(bool)Crea un duplicado del nodo.
CreateNavigator()Crea un navegador que se puede utilizar para atravesar y leer nodos.
FetchInheritedShapeAttr(int)Reservado para uso del sistema. IShapeAttrSource.
FetchShapeAttr(int)Reservado para uso del sistema. IShapeAttrSource.
GetAncestor(NodeType)Obtiene el primer ancestro del especificadoNodeType .
GetAncestor(Type)Obtiene el primer antepasado del tipo de objeto especificado.
GetChild(NodeType, int, bool)Devuelve un enésimo nodo secundario que coincide con el tipo especificado.
GetChildNodes(NodeType, bool)Devuelve una colección activa de nodos secundarios que coinciden con el tipo especificado.
GetDirectShapeAttr(int)Reservado para uso del sistema. IShapeAttrSource.
GetEnumerator()Proporciona soporte para cada iteración de estilo sobre los nodos secundarios de este nodo.
GetShapeRenderer()Crea y devuelve un objeto que se puede utilizar para representar esta forma en una imagen.
override GetText()Obtiene el texto de este nodo y de todos sus hijos.
IndexOf(Node)Devuelve el índice del nodo secundario especificado en la matriz de nodos secundarios.
InsertAfter(NodeNode)Inserta el nodo especificado inmediatamente después del nodo de referencia especificado.
InsertBefore(NodeNode)Inserta el nodo especificado inmediatamente antes del nodo de referencia especificado.
LocalToParent(PointF)Convierte un valor del espacio de coordenadas local al espacio de coordenadas de la forma principal.
NextPreOrder(Node)Obtiene el siguiente nodo según el algoritmo transversal del árbol de pedidos anticipados.
PrependChild(Node)Agrega el nodo especificado al principio de la lista de nodos secundarios para este nodo.
PreviousPreOrder(Node)Obtiene el nodo anterior según el algoritmo transversal del árbol de pedidos anticipados.
Remove()Se elimina del padre.
RemoveAllChildren()Elimina todos los nodos secundarios del nodo actual.
RemoveChild(Node)Elimina el nodo secundario especificado.
RemoveShapeAttr(int)Reservado para uso del sistema. IShapeAttrSource.
RemoveSmartTags()Elimina todoSmartTagnodos descendientes del nodo actual.
SelectNodes(string)Selecciona una lista de nodos que coinciden con la expresión XPath.
SelectSingleNode(string)Selecciona el primeroNode que coincide con la expresión XPath.
SetShapeAttr(int, object)Reservado para uso del sistema. IShapeAttrSource.
ToString(SaveFormat)Exporta el contenido del nodo a una cadena en el formato especificado.
ToString(SaveOptions)Exporta el contenido del nodo a una cadena usando las opciones de guardado especificadas.
UpdateSmartArtDrawing()Actualiza el dibujo prerenderizado de SmartArt utilizando el motor de renderizado en frío SmartArt de Aspose.Words.

Observaciones

Utilizando elShape En esta clase puedes crear o modificar formas en un documento de Microsoft Word.

Una propiedad importante de una forma es suShapeTypeLas formas de diferentes tipos pueden tener diferentes capacidades en un documento de Word. Por ejemplo, solo las imágenes y OLE marks pueden tener imágenes dentro. La mayoría de las formas pueden tener texto, pero no todas.

Las formas que pueden tener texto, pueden contenerParagraph y Table nodos cuando eran niños.

Ejemplos

Muestra cómo insertar una imagen flotante en el centro de una página.

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

// Inserta una imagen flotante que aparecerá detrás del texto superpuesto y alinéala con el centro de la página.
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");

Muestra cómo extraer imágenes de un documento y guardarlas en el sistema de archivos local como archivos individuales.

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

// Obtener la colección de formas del documento,
// y guarda los datos de la imagen de cada forma con una imagen como un archivo en el sistema de archivos local.
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)
    {
         // Los datos de imagen de las formas pueden contener imágenes de muchos formatos de imagen posibles.
        // Podemos determinar una extensión de archivo para cada imagen automáticamente, según su formato.
        string imageFileName =
            $"File.ExtractImages.{imageIndex}{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}";
        shape.ImageData.Save(ArtifactsDir + imageFileName);
        imageIndex++;
    }
}

Muestra cómo eliminar todas las formas de un documento.

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

// Inserta dos formas junto con una forma de grupo con otra forma dentro.
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);

// Elimina todos los nodos de forma del documento.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);
shapes.Clear();

// Todas las formas desaparecieron, pero la forma del grupo todavía está en el documento.
Assert.AreEqual(1, doc.GetChildNodes(NodeType.GroupShape, true).Count);
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Shape, true).Count);

// Elimina todas las formas del grupo por separado.
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);

Ver también