Shape

Shape class

Rappresenta un oggetto nel livello di disegno, ad esempio una forma, una casella di testo, una forma libera, un oggetto OLE, un controllo ActiveX o un’immagine.

Per saperne di più, visita ilLavorare con le forme articolo di documentazione.

public sealed class Shape : ShapeBase

Costruttori

NomeDescrizione
Shape(DocumentBaseShapeType)Crea un nuovo oggetto forma.

Proprietà

NomeDescrizione
AllowOverlap { get; set; }Ottiene o imposta un valore che specifica se questa forma può sovrapporsi ad altre forme.
AlternativeText { get; set; }Definisce il testo alternativo da visualizzare al posto dell’immagine.
AnchorLocked { get; set; }Specifica se l’ancoraggio della forma è bloccato.
AspectRatioLocked { get; set; }Specifica se le proporzioni della forma sono bloccate.
BehindText { get; set; }Specifica se la forma è sotto o sopra il testo.
Bottom { get; }Ottiene la posizione del bordo inferiore del blocco contenitore della forma.
Bounds { get; set; }Ottiene o imposta la posizione e la dimensione del blocco contenitore della forma.
BoundsInPoints { get; }Ottiene la posizione e la dimensione del blocco contenitore della forma in punti, rispetto all’ancoraggio della forma più in alto.
BoundsWithEffects { get; }Ottiene l’estensione finale dell’oggetto forma dopo l’applicazione degli effetti di disegno. Il valore è misurato in punti.
CanHaveImage { get; }RestituisceVERO se il tipo di forma consente alla forma di avere un’immagine.
Chart { get; }Fornisce l’accesso alle proprietà del grafico se questa forma ha unChart .
CoordOrigin { get; set; }Le coordinate nell’angolo in alto a sinistra del blocco contenitore di questa forma.
CoordSize { get; set; }La larghezza e l’altezza dello spazio delle coordinate all’interno del blocco contenitore di questa forma.
Count { get; }Ottiene il numero di figli immediati di questo nodo.
CustomNodeId { get; set; }Specifica l’identificatore del nodo personalizzato.
DistanceBottom { get; set; }Restituisce o imposta la distanza (in punti) tra il testo del documento e il bordo inferiore della forma.
DistanceLeft { get; set; }Restituisce o imposta la distanza (in punti) tra il testo del documento e il bordo sinistro della forma.
DistanceRight { get; set; }Restituisce o imposta la distanza (in punti) tra il testo del documento e il bordo destro della forma.
DistanceTop { get; set; }Restituisce o imposta la distanza (in punti) tra il testo del documento e il bordo superiore della forma.
virtual Document { get; }Ottiene il documento a cui appartiene questo nodo.
ExtrusionEnabled { get; }RestituisceVERO se è abilitato un effetto di estrusione.
Fill { get; }Ottiene la formattazione di riempimento per la forma.
FillColor { get; set; }Definisce il colore del pennello che riempie il percorso chiuso della forma.
Filled { get; set; }Determina se il percorso chiuso della forma verrà riempito.
FirstChild { get; }Ottiene il primo figlio del nodo.
FirstParagraph { get; }Ottiene il primo paragrafo nella forma.
FlipOrientation { get; set; }Cambia l’orientamento di una forma.
Font { get; }Fornisce l’accesso alla formattazione dei caratteri di questo oggetto.
HasChart { get; }RestituisceVERO se questoShape ha unChart .
HasChildNodes { get; }RestituisceVERO se questo nodo ha nodi figli.
HasImage { get; }RestituisceVERO se la forma ha byte di immagine o collega un’immagine.
HasSmartArt { get; }RestituisceVERO se questoShape ha un oggetto SmartArt.
Height { get; set; }Ottiene o imposta l’altezza del blocco contenitore della forma.
HeightRelative { get; set; }Ottiene o imposta il valore che rappresenta la percentuale dell’altezza relativa della forma.
HorizontalAlignment { get; set; }Specifica come viene posizionata la forma orizzontalmente.
HorizontalRuleFormat { get; }Fornisce l’accesso alle proprietà della forma del filetto orizzontale. Per una forma che non è un filetto orizzontale, restituiscenullo .
HRef { get; set; }Ottiene o imposta l’indirizzo completo del collegamento ipertestuale per una forma.
ImageData { get; }Fornisce l’accesso all’immagine della forma. Restituiscenullo se la forma non può avere un’immagine.
override IsComposite { get; }RestituisceVERO poiché questo nodo può avere nodi figli.
IsDecorative { get; set; }Ottiene o imposta il flag che specifica se la forma è decorativa nel documento.
IsDeleteRevision { get; }Restituisce vero se questo oggetto è stato eliminato in Microsoft Word mentre era abilitato il rilevamento delle modifiche.
IsGroup { get; }RestituisceVERO se questa è una forma di gruppo.
IsHorizontalRule { get; }RestituisceVERO se questa forma è una riga orizzontale.
IsImage { get; }RestituisceVERO se questa forma è una forma immagine.
IsInline { get; }Un modo rapido per determinare se questa forma è posizionata in linea con il testo.
IsInsertRevision { get; }Restituisce vero se questo oggetto è stato inserito in Microsoft Word mentre il rilevamento delle modifiche era abilitato.
IsLayoutInCell { get; set; }Ottiene o imposta un flag che indica se la forma viene visualizzata all’interno o all’esterno di una tabella.
IsMoveFromRevision { get; }RestituisceVERO se questo oggetto è stato spostato (eliminato) in Microsoft Word mentre il rilevamento delle modifiche era abilitato.
IsMoveToRevision { get; }RestituisceVERO se questo oggetto è stato spostato (inserito) in Microsoft Word mentre il rilevamento delle modifiche era abilitato.
IsSignatureLine { get; }Indica che la forma è aSignatureLine .
IsTopLevel { get; }RestituisceVEROse questa forma non è figlia di una forma di gruppo.
IsWordArt { get; }RestituisceVERO se questa forma è un oggetto WordArt.
LastChild { get; }Ottiene l’ultimo figlio del nodo.
LastParagraph { get; }Ottiene l’ultimo paragrafo nella forma.
Left { get; set; }Ottiene o imposta la posizione del bordo sinistro del blocco contenitore della forma.
LeftRelative { get; set; }Ottiene o imposta il valore che rappresenta la posizione relativa a sinistra della forma in percentuale.
MarkupLanguage { get; }Ottiene MarkupLanguage utilizzato per questo oggetto grafico.
Name { get; set; }Ottiene o imposta il nome della forma opzionale.
NextSibling { get; }Ottiene il nodo immediatamente successivo a questo nodo.
override NodeType { get; }RestituisceShape .
OleFormat { get; }Fornisce l’accesso ai dati OLE di una forma. Per una forma che non è un oggetto OLE o un controllo ActiveX, restituiscenullo .
ParentNode { get; }Ottiene il genitore immediato di questo nodo.
ParentParagraph { get; }Restituisce il paragrafo principale immediato.
PreviousSibling { get; }Ottiene il nodo immediatamente precedente questo nodo.
Range { get; }Restituisce aRange oggetto che rappresenta la porzione di documento contenuta in questo nodo.
RelativeHorizontalPosition { get; set; }Specifica in relazione a come è posizionata la forma orizzontalmente.
RelativeHorizontalSize { get; set; }Ottiene o imposta il valore della dimensione relativa della forma nella direzione orizzontale.
RelativeVerticalPosition { get; set; }Specifica rispetto a come è posizionata verticalmente la forma.
RelativeVerticalSize { get; set; }Ottiene o imposta il valore della dimensione relativa della forma in direzione verticale.
Right { get; }Ottiene la posizione del bordo destro del blocco contenitore della forma.
Rotation { get; set; }Definisce l’angolo (in gradi) di rotazione di una forma. Il valore positivo corrisponde all’angolo di rotazione in senso orario.
ScreenTip { get; set; }Definisce il testo visualizzato quando il puntatore del mouse si sposta sulla forma.
ShadowEnabled { get; }RestituisceVERO se è abilitato un effetto ombra.
ShadowFormat { get; }Ottiene la formattazione dell’ombra per la forma.
ShapeType { get; }Ottiene il tipo di forma.
SignatureLine { get; }OttieneSignatureLine oggetto se la forma è una linea di firma. ritornanullo altrimenti.
SizeInPoints { get; }Ottiene la dimensione della forma in punti.
StoryType { get; }RestituisceTextbox .
Stroke { get; }Definisce un tratto per una forma.
StrokeColor { get; set; }Definisce il colore di un tratto.
Stroked { get; set; }Definisce se il percorso verrà tracciato.
StrokeWeight { get; set; }Definisce lo spessore del pennello che traccia il percorso di una forma in punti.
Target { get; set; }Ottiene o imposta il frame di destinazione per il collegamento ipertestuale della forma.
TextBox { get; }Definisce gli attributi che specificano come il testo viene visualizzato in una forma.
TextPath { get; }Definisce il testo del percorso testo (di un oggetto WordArt).
Title { get; set; }Ottiene o imposta il titolo (didascalia) dell’oggetto forma corrente.
Top { get; set; }Ottiene o imposta la posizione del bordo superiore del blocco contenitore della forma.
TopRelative { get; set; }Ottiene o imposta il valore che rappresenta la posizione superiore relativa della forma in percentuale.
VerticalAlignment { get; set; }Specifica come viene posizionata la forma verticalmente.
Width { get; set; }Ottiene o imposta la larghezza del blocco contenitore della forma.
WidthRelative { get; set; }Ottiene o imposta il valore che rappresenta la percentuale della larghezza relativa della forma.
WrapSide { get; set; }Specifica come il testo viene disposto attorno alla forma.
WrapType { get; set; }Definisce se la forma è in linea o mobile. Per le forme fluttuanti definisce la modalità di disposizione del testo attorno alla forma.
ZOrder { get; set; }Determina l’ordine di visualizzazione delle forme sovrapposte.

Metodi

NomeDescrizione
override Accept(DocumentVisitor)Accetta un visitatore.
AdjustWithEffects(RectangleF)Aggiunge al rettangolo di origine i valori dell’estensione dell’effetto e restituisce il rettangolo finale.
AppendChild(Node)Aggiunge il nodo specificato alla fine dell’elenco dei nodi secondari per questo nodo.
Clone(bool)Crea un duplicato del nodo.
CreateNavigator()Crea un navigatore che può essere utilizzato per attraversare e leggere i nodi.
FetchInheritedShapeAttr(int)Riservato per l’uso del sistema. IShapeAttrSource.
FetchShapeAttr(int)Riservato per l’uso del sistema. IShapeAttrSource.
GetAncestor(NodeType)Ottiene il primo antenato dell’oggetto specificatoNodeType .
GetAncestor(Type)Ottiene il primo antenato del tipo di oggetto specificato.
GetChild(NodeType, int, bool)Restituisce un Nesimo nodo figlio che corrisponde al tipo specificato.
GetChildNodes(NodeType, bool)Restituisce una raccolta attiva di nodi secondari che corrispondono al tipo specificato.
GetDirectShapeAttr(int)Riservato per l’uso del sistema. IShapeAttrSource.
GetEnumerator()Fornisce il supporto per l’iterazione di ogni stile sui nodi figlio di questo nodo.
GetShapeRenderer()Crea e restituisce un oggetto che può essere utilizzato per eseguire il rendering di questa forma in un’immagine.
override GetText()Ottiene il testo di questo nodo e di tutti i suoi figli.
IndexOf(Node)Restituisce l’indice del nodo figlio specificato nell’array di nodi figlio.
InsertAfter(NodeNode)Inserisce il nodo specificato immediatamente dopo il nodo di riferimento specificato.
InsertBefore(NodeNode)Inserisce il nodo specificato immediatamente prima del nodo di riferimento specificato.
LocalToParent(PointF)Converte un valore dallo spazio delle coordinate locali nello spazio delle coordinate della forma genitore.
NextPreOrder(Node)Ottiene il nodo successivo in base all’algoritmo di attraversamento dell’albero di preordine.
PrependChild(Node)Aggiunge il nodo specificato all’inizio dell’elenco dei nodi secondari per questo nodo.
PreviousPreOrder(Node)Ottiene il nodo precedente in base all’algoritmo di attraversamento dell’albero di preordine.
Remove()Si rimuove dal genitore.
RemoveAllChildren()Rimuove tutti i nodi figlio del nodo corrente.
RemoveChild(Node)Rimuove il nodo figlio specificato.
RemoveShapeAttr(int)Riservato per l’uso del sistema. IShapeAttrSource.
RemoveSmartTags()Rimuove tuttoSmartTagnodi discendenti del nodo corrente.
SelectNodes(string)Seleziona un elenco di nodi che corrispondono all’espressione XPath.
SelectSingleNode(string)Seleziona il primoNode che corrisponde all’espressione XPath.
SetShapeAttr(int, object)Riservato per l’uso del sistema. IShapeAttrSource.
ToString(SaveFormat)Esporta il contenuto del nodo in una stringa nel formato specificato.
ToString(SaveOptions)Esporta il contenuto del nodo in una stringa utilizzando le opzioni di salvataggio specificate.
UpdateSmartArtDrawing()Aggiorna il disegno pre-renderizzato SmartArt utilizzando il motore di rendering a freddo SmartArt di Aspose.Words.

Osservazioni

Usando ilShape classe puoi creare o modificare forme in un documento di Microsoft Word.

Una proprietà importante di una forma è la suaShapeTypeForme di tipi diversi possono avere funzionalità diverse in un documento di Word. Ad esempio, solo image e OLE Shapes possono contenere immagini al loro interno. La maggior parte delle forme può contenere testo, ma non tutte.

Le forme che possono contenere testo possono contenereParagraph e Table nodi da bambini.

Esempi

Mostra come inserire un’immagine mobile al centro di una pagina.

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

// Inserisci un'immagine mobile che apparirà dietro il testo sovrapposto e allineala al centro della pagina.
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");

Mostra come estrarre immagini da un documento e salvarle nel file system locale come singoli file.

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

// Ottieni la raccolta di forme dal documento,
// e salva i dati dell'immagine di ogni forma con un'immagine come file nel file system locale.
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)
    {
         // I dati immagine delle forme possono contenere immagini di molti possibili formati immagine.
        // Possiamo determinare automaticamente un'estensione di file per ciascuna immagine, in base al suo formato.
        string imageFileName =
            $"File.ExtractImages.{imageIndex}{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}";
        shape.ImageData.Save(ArtifactsDir + imageFileName);
        imageIndex++;
    }
}

Mostra come eliminare tutte le forme da un documento.

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

// Inserisci due forme insieme a una forma di gruppo con un'altra forma al suo interno.
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);

// Rimuove tutti i nodi Forma dal documento.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);
shapes.Clear();

// Tutte le forme sono scomparse, ma la forma del gruppo è ancora nel documento.
Assert.AreEqual(1, doc.GetChildNodes(NodeType.GroupShape, true).Count);
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Shape, true).Count);

// Rimuove tutte le forme del gruppo separatamente.
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);

Guarda anche