Shape

Shape class

Représente un objet dans la couche de dessin, tel qu’une forme automatique, une zone de texte, une forme libre, un objet OLE, un contrôle ActiveX ou une image.

public sealed class Shape : ShapeBase

Constructeurs

Nom La description
Shape(DocumentBase, ShapeType) Crée un nouvel objet forme.

Propriétés

Nom La description
AllowOverlap { get; set; } Obtient ou définit une valeur qui spécifie si cette forme peut chevaucher d’autres formes.
AlternativeText { get; set; } Définit un texte alternatif à afficher à la place d’un graphique.
AnchorLocked { get; set; } Spécifie si l’ancre de la forme est verrouillée.
AspectRatioLocked { get; set; } Spécifie si les proportions de la forme sont verrouillées.
BehindText { get; set; } Spécifie si la forme est au-dessous ou au-dessus du texte.
Bottom { get; } Obtient la position du bord inférieur du bloc conteneur de la forme.
Bounds { get; set; } Obtient ou définit l’emplacement et la taille du bloc conteneur de la forme.
BoundsInPoints { get; } Obtient l’emplacement et la taille du bloc conteneur de la forme en points, par rapport à l’ancre de la forme la plus haute.
BoundsWithEffects { get; } Obtient l’étendue finale de cet objet de forme après l’application des effets de dessin. La valeur est mesurée en points.
CanHaveImage { get; } Renvoie vrai si le type de forme permet à la forme d’avoir une image.
Chart { get; } Fournit un accès aux propriétés du graphique si cette forme a un graphique.
ChildNodes { get; } Obtient tous les nœuds enfants immédiats de ce nœud.
CoordOrigin { get; set; } Les coordonnées dans le coin supérieur gauche du bloc conteneur de cette forme.
CoordSize { get; set; } La largeur et la hauteur de l’espace de coordonnées à l’intérieur du bloc conteneur de cette forme.
Count { get; } Obtient le nombre d’enfants immédiats de ce nœud.
CustomNodeId { get; set; } Spécifie l’identifiant de nœud personnalisé.
DistanceBottom { get; set; } Renvoie ou définit la distance (en points) entre le texte du document et le bord inférieur de la forme.
DistanceLeft { get; set; } Renvoie ou définit la distance (en points) entre le texte du document et le bord gauche de la forme.
DistanceRight { get; set; } Renvoie ou définit la distance (en points) entre le texte du document et le bord droit de la forme.
DistanceTop { get; set; } Renvoie ou définit la distance (en points) entre le texte du document et le bord supérieur de la forme.
virtual Document { get; } Obtient le document auquel ce nœud appartient.
ExtrusionEnabled { get; } Renvoie true si un effet d’extrusion est activé.
Fill { get; } Obtient la mise en forme de remplissage pour la forme.
FillColor { get; set; } Définit la couleur du pinceau qui remplit le chemin fermé de la forme.
Filled { get; set; } Détermine si le chemin fermé de la forme sera rempli.
FirstChild { get; } Obtient le premier enfant du nœud.
FirstParagraph { get; } Récupère le premier paragraphe de la forme.
FlipOrientation { get; set; } Change l’orientation d’une forme.
Font { get; } Fournit l’accès à la mise en forme de la police de cet objet.
HasChart { get; } Renvoie vrai si cette forme a unChart .
HasChildNodes { get; } Renvoie vrai si ce nœud a des nœuds enfants.
HasImage { get; } Renvoie vrai si la forme contient des octets d’image ou lie une image.
HasSmartArt { get; } Renvoie vrai si cette forme a un objet SmartArt.
Height { get; set; } Obtient ou définit la hauteur du bloc conteneur de la forme.
HorizontalAlignment { get; set; } Spécifie comment la forme est positionnée horizontalement.
HorizontalRuleFormat { get; } Permet d’accéder aux propriétés de la forme du filet horizontal. Pour une forme qui n’est pas un filet horizontal, renvoie null.
HRef { get; set; } Obtient ou définit l’adresse complète du lien hypertexte pour une forme.
ImageData { get; } Fournit un accès à l’image de la forme. Renvoie null si la forme ne peut pas avoir d’image.
override IsComposite { get; } Renvoie true car ce nœud peut avoir des nœuds enfants.
IsDecorative { get; set; } Obtient ou définit l’indicateur qui spécifie si la forme est décorative dans le document.
IsDeleteRevision { get; } Renvoie true si cet objet a été supprimé dans Microsoft Word alors que le suivi des modifications était activé.
IsGroup { get; } Renvoie vrai s’il s’agit d’une forme de groupe.
IsHorizontalRule { get; } Renvoie vrai si cette forme est une règle horizontale.
IsImage { get; } Renvoie vrai si cette forme est une forme d’image.
IsInline { get; } Un moyen rapide de déterminer si cette forme est alignée avec le texte.
IsInsertRevision { get; } Renvoie true si cet objet a été inséré dans Microsoft Word alors que le suivi des modifications était activé.
IsLayoutInCell { get; set; } Obtient ou définit un indicateur indiquant si la forme est affichée à l’intérieur ou à l’extérieur d’un tableau.
IsMoveFromRevision { get; } Retours vrai si cet objet a été déplacé (supprimé) dans Microsoft Word alors que le suivi des modifications était activé.
IsMoveToRevision { get; } Retours vrai si cet objet a été déplacé (inséré) dans Microsoft Word alors que le suivi des modifications était activé.
IsSignatureLine { get; } Indique que la forme est une SignatureLine.
IsTopLevel { get; } Renvoie vrai si cette forme n’est pas un enfant d’une forme de groupe.
IsWordArt { get; } Renvoie true si cette forme est un objet WordArt.
LastChild { get; } Obtient le dernier enfant du nœud.
LastParagraph { get; } Récupère le dernier paragraphe de la forme.
Left { get; set; } Obtient ou définit la position du bord gauche du bloc conteneur de la forme.
MarkupLanguage { get; } Récupère MarkupLanguage utilisé pour cet objet graphique.
Name { get; set; } Obtient ou définit le nom de la forme facultative.
NextSibling { get; } Obtient le nœud suivant immédiatement ce nœud.
override NodeType { get; } RetoursShape .
OleFormat { get; } Permet d’accéder aux données OLE d’une forme. Pour une forme qui n’est pas un objet OLE ou un contrôle ActiveX, renvoie null.
ParentNode { get; } Obtient le parent immédiat de ce nœud.
ParentParagraph { get; } Renvoie le paragraphe parent immédiat.
PreviousSibling { get; } Obtient le nœud précédant immédiatement ce nœud.
Range { get; } Renvoie un Intervalle objet qui représente la partie d’un document contenue dans ce nœud.
RelativeHorizontalPosition { get; set; } Spécifie par rapport à quoi la forme est positionnée horizontalement.
RelativeVerticalPosition { get; set; } Spécifie par rapport à quoi la forme est positionnée verticalement.
Right { get; } Obtient la position du bord droit du bloc conteneur de la forme.
Rotation { get; set; } Définit l’angle (en degrés) de rotation d’une forme. Une valeur positive correspond à un angle de rotation dans le sens des aiguilles d’une montre.
ScreenTip { get; set; } Définit le texte affiché lorsque le pointeur de la souris se déplace sur la forme.
ShadowEnabled { get; } Renvoie vrai si un effet d’ombre est activé.
ShadowFormat { get; } Obtient la mise en forme de l’ombre pour la forme.
ShapeType { get; } Obtient le type de forme.
SignatureLine { get; } ObtientSignatureLine objet si la forme est une ligne de signature. Retour nul sinon.
SizeInPoints { get; } Obtient la taille de la forme en points.
StoryType { get; } RetoursTextbox .
Stroke { get; } Définit un trait pour une forme.
StrokeColor { get; set; } Définit la couleur d’un trait.
Stroked { get; set; } Définit si le chemin sera tracé.
StrokeWeight { get; set; } Définit l’épaisseur du pinceau qui trace le chemin d’une forme en points.
Target { get; set; } Obtient ou définit le cadre cible pour le lien hypertexte de la forme.
TextBox { get; } Définit les attributs qui spécifient comment le texte est affiché dans une forme.
TextPath { get; } Définit le texte du chemin de texte (d’un objet WordArt).
Title { get; set; } Obtient ou définit le titre (légende) de l’objet forme actuel.
Top { get; set; } Obtient ou définit la position du bord supérieur du bloc conteneur de la forme.
VerticalAlignment { get; set; } Spécifie comment la forme est positionnée verticalement.
Width { get; set; } Obtient ou définit la largeur du bloc conteneur de la forme.
WrapSide { get; set; } Spécifie comment le texte est enroulé autour de la forme.
WrapType { get; set; } Définit si la forme est en ligne ou flottante. Pour les formes flottantes, définit le mode d’habillage du texte autour de la forme.
ZOrder { get; set; } Détermine l’ordre d’affichage des formes superposées.

Méthodes

Nom La description
override Accept(DocumentVisitor) Accepte un visiteur.
AdjustWithEffects(RectangleF) Ajoute aux valeurs du rectangle source de l’étendue de l’effet et renvoie le rectangle final.
AppendChild(Node) Ajoute le nœud spécifié à la fin de la liste des nœuds enfants pour ce nœud.
Clone(bool) Crée un doublon du nœud.
CreateNavigator() Réservé à l’utilisation du système. IXPathNavigable.
FetchInheritedShapeAttr(int) Réservé à l’utilisation du système. IShapeAttrSource.
FetchShapeAttr(int) Réservé à l’utilisation du système. IShapeAttrSource.
GetAncestor(NodeType) Obtient le premier ancêtre du spécifiéNodeType .
GetAncestor(Type) Obtient le premier ancêtre du type d’objet spécifié.
GetChild(NodeType, int, bool) Renvoie un Nième nœud enfant qui correspond au type spécifié.
GetChildNodes(NodeType, bool) Renvoie une collection dynamique de nœuds enfants correspondant au type spécifié.
GetDirectShapeAttr(int) Réservé à l’utilisation du système. IShapeAttrSource.
GetEnumerator() Fournit la prise en charge de chaque itération de style sur les nœuds enfants de ce nœud.
GetShapeRenderer() Crée et renvoie un objet qui peut être utilisé pour rendre cette forme dans une image.
override GetText() Obtient le texte de ce nœud et de tous ses enfants.
IndexOf(Node) Renvoie l’index du nœud enfant spécifié dans le tableau de nœuds enfants.
InsertAfter(Node, Node) Insère le nœud spécifié immédiatement après le nœud de référence spécifié.
InsertBefore(Node, Node) Insère le nœud spécifié juste avant le nœud de référence spécifié.
LocalToParent(PointF) Convertit une valeur de l’espace de coordonnées local dans l’espace de coordonnées de la forme parent.
NextPreOrder(Node) Obtient le nœud suivant selon l’algorithme de traversée de l’arbre de pré-ordre.
PrependChild(Node) Ajoute le nœud spécifié au début de la liste des nœuds enfants pour ce nœud.
PreviousPreOrder(Node) Obtient le nœud précédent selon l’algorithme de parcours de l’arbre de pré-ordre.
Remove() Se supprime du parent.
RemoveAllChildren() Supprime tous les nœuds enfants du nœud actuel.
RemoveChild(Node) Supprime le nœud enfant spécifié.
RemoveShapeAttr(int) Réservé à l’utilisation du système. IShapeAttrSource.
RemoveSmartTags() Supprime toutSmartTag nœuds descendants du nœud actuel.
SelectNodes(string) Sélectionne une liste de nœuds correspondant à l’expression XPath.
SelectSingleNode(string) Sélectionne le premier nœud qui correspond à l’expression XPath.
SetShapeAttr(int, object) Réservé à l’utilisation du système. IShapeAttrSource.
ToString(SaveFormat) Exporte le contenu du nœud dans une chaîne au format spécifié.
ToString(SaveOptions) Exporte le contenu du nœud dans une chaîne à l’aide des options d’enregistrement spécifiées.
UpdateSmartArtDrawing() Met à jour le dessin pré-rendu SmartArt en utilisant le moteur de rendu à froid SmartArt d’Aspose.Words.

Remarques

En utilisant leShape classe, vous pouvez créer ou modifier des formes dans un document Microsoft Word.

Une propriété importante d’une forme est saShapeType. Les formes de différents types peuvent avoir des fonctionnalités différentes dans un document Word. Par exemple, seules les formes image et OLE peuvent contenir des images. La plupart des formes peuvent contenir du texte, mais pas toutes.

Les formes qui peuvent avoir du texte, peuvent contenirParagraph et Table nœuds en tant qu’enfants.

Exemples

Montre comment insérer une image flottante au centre d’une page.

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

// Insère une image flottante qui apparaîtra derrière le texte superposé et l'aligne au centre de la page.
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");

Montre comment extraire des images d’un document et les enregistrer dans le système de fichiers local en tant que fichiers individuels.

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

// Récupère la collection de formes du document,
// et enregistrez les données d'image de chaque forme avec une image en tant que fichier dans le système de fichiers 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)
    {
        // Les données d'image des formes peuvent contenir des images de nombreux formats d'image possibles. 
        // Nous pouvons déterminer automatiquement une extension de fichier pour chaque image, en fonction de son format.
        string imageFileName =
            $"File.ExtractImages.{imageIndex}{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}";
        shape.ImageData.Save(ArtifactsDir + imageFileName);
        imageIndex++;
    }
}

Montre comment supprimer toutes les formes d’un document.

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

// Insère deux formes avec une forme de groupe avec une autre forme à l'intérieur.
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);

// Supprime tous les nœuds Shape du document.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);
shapes.Clear();

// Toutes les formes ont disparu, mais la forme de groupe est toujours dans le document.
Assert.AreEqual(1, doc.GetChildNodes(NodeType.GroupShape, true).Count);
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Shape, true).Count);

// Supprime toutes les formes de groupe séparément.
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);

Voir également