GroupShape

GroupShape class

Rappresenta un gruppo di forme in un documento.

public class GroupShape : ShapeBase

Costruttori

Nome Descrizione
GroupShape(DocumentBase) Crea una nuova forma di gruppo.

Proprietà

Nome Descrizione
AllowOverlap { get; set; } Ottiene o imposta un valore che specifica se questa forma può sovrapporsi ad altre forme.
AlternativeText { get; set; } Definisce un testo alternativo da visualizzare invece di un grafico.
AnchorLocked { get; set; } Specifica se l’ancora della forma è bloccata.
AspectRatioLocked { get; set; } Specifica se le proporzioni della forma sono bloccate.
BehindText { get; set; } Specifica se la forma è al di sotto o al di sopra del 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’ancora della forma più in alto.
BoundsWithEffects { get; } Ottiene l’estensione finale di questo oggetto forma dopo l’applicazione degli effetti di disegno. Il valore viene misurato in punti.
CanHaveImage { get; } Restituisce true se il tipo di forma consente alla forma di avere un’immagine.
ChildNodes { get; } Ottiene tutti i nodi figlio immediati di questo nodo.
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.
Fill { get; } Ottiene la formattazione di riempimento per la forma.
FirstChild { get; } Ottiene il primo figlio del nodo.
FlipOrientation { get; set; } Cambia l’orientamento di una forma.
Font { get; } Fornisce l’accesso alla formattazione del carattere di questo oggetto.
HasChildNodes { get; } Restituisce true se questo nodo ha nodi figlio.
Height { get; set; } Ottiene o imposta l’altezza del blocco contenitore della forma.
HorizontalAlignment { get; set; } Specifica come posizionare la forma orizzontalmente.
HRef { get; set; } Ottiene o imposta l’indirizzo completo del collegamento ipertestuale per una forma.
override IsComposite { get; } Restituisce true poiché questo nodo può avere nodi figlio.
IsDecorative { get; set; } Ottiene o imposta il flag che specifica se la forma è decorativa nel documento.
IsDeleteRevision { get; } Restituisce true se questo oggetto è stato eliminato in Microsoft Word mentre era abilitato il rilevamento delle modifiche.
IsGroup { get; } Restituisce vero se questa è una forma di gruppo.
IsHorizontalRule { get; } Restituisce vero se questa forma è una regola orizzontale.
IsImage { get; } Restituisce vero 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 true se questo oggetto è stato inserito in Microsoft Word mentre era abilitato il rilevamento delle modifiche.
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; } Restituisce VERO se questo oggetto è stato spostato (eliminato) in Microsoft Word mentre era abilitato il rilevamento delle modifiche.
IsMoveToRevision { get; } Restituisce VERO se questo oggetto è stato spostato (inserito) in Microsoft Word mentre era abilitato il rilevamento delle modifiche.
IsSignatureLine { get; } Indica che la forma è una SignatureLine.
IsTopLevel { get; } Restituisce true se questa forma non è figlia di una forma di gruppo.
IsWordArt { get; } Restituisce true se questa forma è un oggetto WordArt.
LastChild { get; } Ottiene l’ultimo figlio del nodo.
Left { get; set; } Ottiene o imposta la posizione del bordo sinistro del blocco contenitore della forma.
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; } RestituisceGroupShape .
ParentNode { get; } Ottiene il genitore immediato di questo nodo.
ParentParagraph { get; } Restituisce il paragrafo principale immediato.
PreviousSibling { get; } Ottiene il nodo immediatamente precedente a questo nodo.
Range { get; } Restituisce a Gamma oggetto che rappresenta la parte di un documento contenuta in questo nodo.
RelativeHorizontalPosition { get; set; } Specifica rispetto a cosa è posizionata orizzontalmente la forma.
RelativeVerticalPosition { get; set; } Specifica il posizionamento verticale della forma.
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.
ShadowFormat { get; } Ottiene la formattazione dell’ombra per la forma.
ShapeType { get; } Ottiene il tipo di forma.
SizeInPoints { get; } Ottiene la dimensione della forma in punti.
Target { get; set; } Ottiene o imposta il frame di destinazione per il collegamento ipertestuale della forma.
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.
VerticalAlignment { get; set; } Specifica come posizionare la forma verticalmente.
Width { get; set; } Ottiene o imposta la larghezza del blocco contenitore della forma.
WrapSide { get; set; } Specifica come il testo viene avvolto attorno alla forma.
WrapType { get; set; } Definisce se la forma è in linea o mobile. Per le forme mobili definisce la modalità di ritorno a capo per il testo attorno alla forma.
ZOrder { get; set; } Determina l’ordine di visualizzazione delle forme sovrapposte.

Metodi

Nome Descrizione
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 figlio per questo nodo.
Clone(bool) Crea un duplicato del nodo.
CreateNavigator() Riservato per l’uso del sistema. IXPathNavigable.
FetchInheritedShapeAttr(int) Riservato per l’uso del sistema. IShapeAttrSource.
FetchShapeAttr(int) Riservato per l’uso del sistema. IShapeAttrSource.
GetAncestor(NodeType) Ottiene il primo predecessore dell’oggetto specificatoNodeType .
GetAncestor(Type) Ottiene il primo predecessore del tipo di oggetto specificato.
GetChild(NodeType, int, bool) Restituisce un ennesimo nodo figlio che corrisponde al tipo specificato.
GetChildNodes(NodeType, bool) Restituisce una raccolta live di nodi figlio che corrispondono al tipo specificato.
GetDirectShapeAttr(int) Riservato per l’uso del sistema. IShapeAttrSource.
GetEnumerator() Fornisce supporto per ogni iterazione di stile sui nodi figlio di questo nodo.
GetShapeRenderer() Crea e restituisce un oggetto che può essere utilizzato per rendere 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 del nodo figlio.
InsertAfter(Node, Node) Inserisce il nodo specificato subito dopo il nodo di riferimento specificato.
InsertBefore(Node, Node) 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 padre.
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 figlio 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 tuttoSmartTag nodi discendenti del nodo corrente.
SelectNodes(string) Seleziona un elenco di nodi che corrispondono all’espressione XPath.
SelectSingleNode(string) Seleziona il primo nodo 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.

Osservazioni

UNGroupShape è un nodo composito e può avereShape e GroupShape nodi da bambini.

A testaGroupShape definisce un nuovo sistema di coordinate per le sue forme figlie. Il sistema di coordinate viene definito utilizzando ilCoordSize e CoordOrigin proprietà.

Esempi

Mostra come creare un gruppo di forme e stamparne il contenuto utilizzando un visitatore del documento.

public void GroupOfShapes()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    // Se devi creare forme "non primitive", come SingleCornerSnipped, TopCornersSnipped, DiagonalCornersSnipped,
    // TopCornersOneRoundedOneSnipped, SingleCornersRounded, TopCornersRounded, DiagonaleCornersRounded
    // usa i metodi DocumentBuilder.InsertShape.
    Shape balloon = new Shape(doc, ShapeType.Balloon)
    {
        Width = 200, 
        Height = 200,
        Stroke = { Color = Color.Red }
    };

    Shape cube = new Shape(doc, ShapeType.Cube)
    {
        Width = 100, 
        Height = 100,
        Stroke = { Color = Color.Blue }
    };

    GroupShape group = new GroupShape(doc);
    group.AppendChild(balloon);
    group.AppendChild(cube);

    Assert.True(group.IsGroup);

    builder.InsertNode(group);

    ShapeGroupPrinter printer = new ShapeGroupPrinter();
    group.Accept(printer);

    Console.WriteLine(printer.GetText());
}

/// <summary>
/// Stampa il contenuto di un gruppo di forme visitato sulla console.
/// </summary>
public class ShapeGroupPrinter : DocumentVisitor
{
    public ShapeGroupPrinter()
    {
        mBuilder = new StringBuilder();
    }

    public string GetText()
    {
        return mBuilder.ToString();
    }

    public override VisitorAction VisitGroupShapeStart(GroupShape groupShape)
    {
        mBuilder.AppendLine("Shape group started:");
        return VisitorAction.Continue;
    }

    public override VisitorAction VisitGroupShapeEnd(GroupShape groupShape)
    {
        mBuilder.AppendLine("End of shape group");
        return VisitorAction.Continue;
    }

    public override VisitorAction VisitShapeStart(Shape shape)
    {
        mBuilder.AppendLine("\tShape - " + shape.ShapeType + ":");
        mBuilder.AppendLine("\t\tWidth: " + shape.Width);
        mBuilder.AppendLine("\t\tHeight: " + shape.Height);
        mBuilder.AppendLine("\t\tStroke color: " + shape.Stroke.Color);
        mBuilder.AppendLine("\t\tFill color: " + shape.Fill.ForeColor);
        return VisitorAction.Continue;
    }

    public override VisitorAction VisitShapeEnd(Shape shape)
    {
        mBuilder.AppendLine("\tEnd of shape");
        return VisitorAction.Continue;
    }

    private readonly StringBuilder mBuilder;
}

Guarda anche