Shape

Shape class

Stellt ein Objekt in der Zeichnungsebene dar, z. B. eine AutoForm, ein Textfeld, eine Freiform, ein OLE-Objekt, ein ActiveX-Steuerelement oder ein Bild.

public sealed class Shape : ShapeBase

Konstrukteure

Name Beschreibung
Shape(DocumentBase, ShapeType) Erstellt ein neues Formobjekt.

Eigenschaften

Name Beschreibung
AllowOverlap { get; set; } Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob diese Form andere Formen überlappen kann.
AlternativeText { get; set; } Definiert alternativen Text, der anstelle einer Grafik angezeigt werden soll.
AnchorLocked { get; set; } Gibt an, ob der Anker der Form gesperrt ist.
AspectRatioLocked { get; set; } Gibt an, ob das Seitenverhältnis der Form gesperrt ist.
BehindText { get; set; } Gibt an, ob sich die Form unter oder über Text befindet.
Bottom { get; } Ruft die Position der Unterkante des umgebenden Blocks der Form ab.
Bounds { get; set; } Ruft die Position und Größe des umgebenden Blocks der Form ab oder legt sie fest.
BoundsInPoints { get; } Ruft die Position und Größe des umgebenden Blocks der Form in Punkt relativ zum Anker der obersten Form ab.
BoundsWithEffects { get; } Ruft die endgültige Ausdehnung ab, die dieses Formobjekt nach dem Anwenden von Zeichnungseffekten hat. Der Wert wird in Punkten gemessen.
CanHaveImage { get; } Gibt „true“ zurück, wenn der Formtyp zulässt, dass die Form ein Bild hat.
Chart { get; } Bietet Zugriff auf die Diagrammeigenschaften, wenn diese Form über ein Diagramm verfügt.
ChildNodes { get; } Ruft alle unmittelbar untergeordneten Knoten dieses Knotens ab.
CoordOrigin { get; set; } Die Koordinaten in der linken oberen Ecke des umgebenden Blocks dieser Form.
CoordSize { get; set; } Die Breite und Höhe des Koordinatenraums innerhalb des umgebenden Blocks dieser Form.
Count { get; } Ruft die Anzahl der unmittelbaren Kinder dieses Knotens ab.
CustomNodeId { get; set; } Gibt die benutzerdefinierte Knotenkennung an.
DistanceBottom { get; set; } Gibt den Abstand (in Punkt) zwischen dem Dokumenttext und der Unterkante der Form zurück oder legt ihn fest.
DistanceLeft { get; set; } Gibt den Abstand (in Punkt) zwischen dem Dokumenttext und der linken Kante der Form zurück oder legt ihn fest.
DistanceRight { get; set; } Gibt den Abstand (in Punkt) zwischen dem Dokumenttext und der rechten Kante der Form zurück oder legt ihn fest.
DistanceTop { get; set; } Gibt den Abstand (in Punkt) zwischen dem Dokumenttext und der Oberkante der Form zurück oder legt ihn fest.
virtual Document { get; } Ruft das Dokument ab, zu dem dieser Knoten gehört.
ExtrusionEnabled { get; } Gibt wahr zurück, wenn ein Extrusionseffekt aktiviert ist.
Fill { get; } Ruft die Füllformatierung für die Form ab.
FillColor { get; set; } Definiert die Pinselfarbe, die den geschlossenen Pfad der Form ausfüllt.
Filled { get; set; } Legt fest, ob der geschlossene Pfad der Form gefüllt wird.
FirstChild { get; } Ruft das erste untergeordnete Element des Knotens ab.
FirstParagraph { get; } Ruft den ersten Absatz in der Form ab.
FlipOrientation { get; set; } Ändert die Ausrichtung einer Form.
Font { get; } Bietet Zugriff auf die Schriftformatierung dieses Objekts.
HasChart { get; } Gibt wahr zurück, wenn diese Form ein hatChart .
HasChildNodes { get; } Gibt wahr zurück, wenn dieser Knoten untergeordnete Knoten hat.
HasImage { get; } Gibt „true“ zurück, wenn die Form Bildbytes enthält oder ein Bild verknüpft.
HasSmartArt { get; } Gibt wahr zurück, wenn diese Form ein SmartArt-Objekt hat.
Height { get; set; } Ruft die Höhe des umgebenden Blocks der Form ab oder legt sie fest.
HorizontalAlignment { get; set; } Gibt an, wie die Form horizontal positioniert wird.
HorizontalRuleFormat { get; } Bietet Zugriff auf die Eigenschaften der Form der horizontalen Linie. Gibt für eine Form, die keine horizontale Linie ist, null zurück.
HRef { get; set; } Ruft die vollständige Hyperlink-Adresse für eine Form ab oder legt sie fest.
ImageData { get; } Bietet Zugriff auf das Bild der Form. Gibt null zurück, wenn die Form kein Bild haben kann.
override IsComposite { get; } Gibt wahr zurück, da dieser Knoten untergeordnete Knoten haben kann.
IsDecorative { get; set; } Ruft das Flag ab oder setzt es, das angibt, ob die Form im Dokument dekorativ ist.
IsDeleteRevision { get; } Gibt „true“ zurück, wenn dieses Objekt in Microsoft Word gelöscht wurde, während die Änderungsnachverfolgung aktiviert war.
IsGroup { get; } Gibt „true“ zurück, wenn es sich um eine Gruppenform handelt.
IsHorizontalRule { get; } Gibt wahr zurück, wenn diese Form eine horizontale Linie ist.
IsImage { get; } Gibt wahr zurück, wenn diese Form eine Bildform ist.
IsInline { get; } Eine schnelle Möglichkeit festzustellen, ob diese Form inline mit Text positioniert ist.
IsInsertRevision { get; } Gibt „true“ zurück, wenn dieses Objekt in Microsoft Word eingefügt wurde, während die Änderungsverfolgung aktiviert war.
IsLayoutInCell { get; set; } Ruft ein Flag ab oder setzt es, das angibt, ob die Form innerhalb oder außerhalb einer Tabelle angezeigt wird.
IsMoveFromRevision { get; } gibt zurück Stimmt wenn dieses Objekt in Microsoft Word verschoben (gelöscht) wurde, während die Änderungsnachverfolgung aktiviert war.
IsMoveToRevision { get; } gibt zurück Stimmt wenn dieses Objekt in Microsoft Word verschoben (eingefügt) wurde, während die Änderungsnachverfolgung aktiviert war.
IsSignatureLine { get; } Gibt an, dass die Form eine SignatureLine ist.
IsTopLevel { get; } Gibt wahr zurück, wenn diese Form kein untergeordnetes Element einer Gruppenform ist.
IsWordArt { get; } Gibt wahr zurück, wenn diese Form ein WordArt-Objekt ist.
LastChild { get; } Ruft das letzte untergeordnete Element des Knotens ab.
LastParagraph { get; } Ruft den letzten Absatz in der Form ab.
Left { get; set; } Ruft die Position der linken Kante des umgebenden Blocks der Form ab oder legt sie fest.
MarkupLanguage { get; } Ruft die für dieses Grafikobjekt verwendete MarkupLanguage ab.
Name { get; set; } Ruft den optionalen Formnamen ab oder legt ihn fest.
NextSibling { get; } Ruft den Knoten ab, der diesem Knoten unmittelbar folgt.
override NodeType { get; } gibt zurückShape .
OleFormat { get; } Bietet Zugriff auf die OLE-Daten einer Form. Gibt für eine Form, die kein OLE-Objekt oder ActiveX-Steuerelement ist, null zurück.
ParentNode { get; } Ruft den unmittelbar übergeordneten Knoten dieses Knotens ab.
ParentParagraph { get; } Gibt den unmittelbar übergeordneten Absatz zurück.
PreviousSibling { get; } Ruft den Knoten unmittelbar vor diesem Knoten ab.
Range { get; } Gibt a zurück Bereich Objekt, das den Teil eines Dokuments darstellt, das in diesem Knoten enthalten ist.
RelativeHorizontalPosition { get; set; } Gibt an, in welchem Verhältnis die Form horizontal positioniert ist.
RelativeVerticalPosition { get; set; } Gibt an, in welchem Verhältnis die Form vertikal positioniert ist.
Right { get; } Ruft die Position der rechten Kante des umgebenden Blocks der Form ab.
Rotation { get; set; } Definiert den Winkel (in Grad), um den eine Form gedreht wird. Ein positiver Wert entspricht einem Drehwinkel im Uhrzeigersinn.
ScreenTip { get; set; } Definiert den Text, der angezeigt wird, wenn der Mauszeiger über die Form bewegt wird.
ShadowEnabled { get; } Gibt wahr zurück, wenn ein Schatteneffekt aktiviert ist.
ShadowFormat { get; } Ruft die Schattenformatierung für die Form ab.
ShapeType { get; } Ruft den Formtyp ab.
SignatureLine { get; } erhältSignatureLine Objekt, wenn die Form eine Signaturlinie ist. Kehrt zurück Null andernfalls.
SizeInPoints { get; } Ruft die Größe der Form in Punkten ab.
StoryType { get; } gibt zurückTextbox .
Stroke { get; } Definiert einen Strich für eine Form.
StrokeColor { get; set; } Definiert die Farbe eines Strichs.
Stroked { get; set; } Definiert, ob der Pfad gestrichelt wird.
StrokeWeight { get; set; } Definiert die Pinselstärke, die den Pfad einer Form in Punkten streicht.
Target { get; set; } Ruft den Zielrahmen für den Form-Hyperlink ab oder legt ihn fest.
TextBox { get; } Definiert Attribute, die angeben, wie Text in einer Form angezeigt wird.
TextPath { get; } Definiert den Text des Textpfades (eines WordArt-Objekts).
Title { get; set; } Ruft den Titel (Beschriftung) des aktuellen Formobjekts ab oder legt ihn fest.
Top { get; set; } Ruft die Position der Oberkante des umgebenden Blocks der Form ab oder legt sie fest.
VerticalAlignment { get; set; } Gibt an, wie die Form vertikal positioniert wird.
Width { get; set; } Ruft die Breite des umschließenden Blocks der Form ab oder legt sie fest.
WrapSide { get; set; } Gibt an, wie der Text um die Form gewickelt wird.
WrapType { get; set; } Definiert, ob die Form eingebettet oder schwebend ist. Für schwebende Formen definiert den Umbruchmodus für Text um die Form.
ZOrder { get; set; } Bestimmt die Anzeigereihenfolge überlappender Formen.

Methoden

Name Beschreibung
override Accept(DocumentVisitor) Akzeptiert einen Besucher.
AdjustWithEffects(RectangleF) Addiert die Quellrechteckwerte der Effektausdehnung und gibt das endgültige Rechteck zurück.
AppendChild(Node) Fügt den angegebenen Knoten am Ende der Liste der untergeordneten Knoten für diesen Knoten hinzu.
Clone(bool) Erstellt ein Duplikat des Knotens.
CreateNavigator() Reserviert für Systemnutzung. IXPfadNavigierbar.
FetchInheritedShapeAttr(int) Reserviert für Systemnutzung. IShapeAttrSource.
FetchShapeAttr(int) Reserviert für Systemnutzung. IShapeAttrSource.
GetAncestor(NodeType) Ruft den ersten Vorfahren der angegebenen abNodeType .
GetAncestor(Type) Ruft den ersten Vorfahren des angegebenen Objekttyps ab.
GetChild(NodeType, int, bool) Gibt einen N-ten untergeordneten Knoten zurück, der dem angegebenen Typ entspricht.
GetChildNodes(NodeType, bool) Gibt eine Live-Sammlung von untergeordneten Knoten zurück, die dem angegebenen Typ entsprechen.
GetDirectShapeAttr(int) Reserviert für Systemnutzung. IShapeAttrSource.
GetEnumerator() Bietet Unterstützung für die Iteration für jeden Stil über die untergeordneten Knoten dieses Knotens.
GetShapeRenderer() Erstellt ein Objekt und gibt es zurück, das verwendet werden kann, um diese Form in ein Bild zu rendern.
override GetText() Ruft den Text dieses Knotens und aller seiner Kinder ab.
IndexOf(Node) Gibt den Index des angegebenen untergeordneten Knotens im untergeordneten Knotenarray zurück.
InsertAfter(Node, Node) Fügt den angegebenen Knoten unmittelbar nach dem angegebenen Referenzknoten ein.
InsertBefore(Node, Node) Fügt den angegebenen Knoten unmittelbar vor dem angegebenen Referenzknoten ein.
LocalToParent(PointF) Konvertiert einen Wert aus dem lokalen Koordinatenraum in den Koordinatenraum der übergeordneten Form.
NextPreOrder(Node) Ruft den nächsten Knoten gemäß dem Traversalalgorithmus des Vorbestellungsbaums ab.
PrependChild(Node) Fügt den angegebenen Knoten am Anfang der Liste der untergeordneten Knoten für diesen Knoten hinzu.
PreviousPreOrder(Node) Ruft den vorherigen Knoten gemäß dem Traversalalgorithmus des Vorbestellungsbaums ab.
Remove() Entfernt sich selbst vom übergeordneten Element.
RemoveAllChildren() Entfernt alle untergeordneten Knoten des aktuellen Knotens.
RemoveChild(Node) Entfernt den angegebenen untergeordneten Knoten.
RemoveShapeAttr(int) Reserviert für Systemnutzung. IShapeAttrSource.
RemoveSmartTags() Entfernt alleSmartTag Nachkommenknoten des aktuellen Knotens.
SelectNodes(string) Wählt eine Liste von Knoten aus, die mit dem XPath-Ausdruck übereinstimmen.
SelectSingleNode(string) Wählt den ersten Knoten aus, der mit dem XPath-Ausdruck übereinstimmt.
SetShapeAttr(int, object) Reserviert für Systemnutzung. IShapeAttrSource.
ToString(SaveFormat) Exportiert den Inhalt des Knotens in einen String im angegebenen Format.
ToString(SaveOptions) Exportiert den Inhalt des Knotens unter Verwendung der angegebenen Speicheroptionen in einen String.
UpdateSmartArtDrawing() Aktualisiert vorgerenderte SmartArt-Zeichnungen mithilfe der SmartArt-Cold-Rendering-Engine von Aspose.Words.

Bemerkungen

Verwendung derShape Klasse können Sie Formen in einem Microsoft Word-Dokument erstellen oder ändern.

Eine wichtige Eigenschaft einer Form ist ihreShapeType. Formen verschiedener -Typen können in einem Word-Dokument unterschiedliche Funktionen haben. Beispielsweise können nur Bild und OLE-Formen Bilder enthalten. Die meisten Formen können Text enthalten, aber nicht alle.

Formen, die Text haben können, können enthaltenParagraph and Table Knoten als Kinder.

Beispiele

Zeigt, wie ein schwebendes Bild in der Mitte einer Seite eingefügt wird.

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

// Fügen Sie ein schwebendes Bild ein, das hinter dem überlappenden Text angezeigt wird, und richten Sie es an der Mitte der Seite aus.
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");

Zeigt, wie Bilder aus einem Dokument extrahiert und als einzelne Dateien im lokalen Dateisystem gespeichert werden.

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

// Holen Sie sich die Sammlung von Formen aus dem Dokument,
// und die Bilddaten jeder Form mit einem Bild als Datei im lokalen Dateisystem speichern.
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)
    {
        // Die Bilddaten von Formen können Bilder in vielen möglichen Bildformaten enthalten. 
        // Wir können für jedes Bild automatisch eine Dateierweiterung basierend auf seinem Format bestimmen.
        string imageFileName =
            $"File.ExtractImages.{imageIndex}{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}";
        shape.ImageData.Save(ArtifactsDir + imageFileName);
        imageIndex++;
    }
}

Zeigt, wie alle Formen aus einem Dokument gelöscht werden.

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

// Fügen Sie zwei Formen zusammen mit einer Gruppenform mit einer anderen Form darin ein.
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);

// Alle Shape-Knoten aus dem Dokument entfernen.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);
shapes.Clear();

// Alle Formen sind verschwunden, aber die Gruppenform ist immer noch im Dokument.
Assert.AreEqual(1, doc.GetChildNodes(NodeType.GroupShape, true).Count);
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Shape, true).Count);

// Alle Gruppenformen separat entfernen.
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);

Siehe auch