BuildingBlockType
Inhalt
[
Ausblenden
]BuildingBlockType enumeration
Gibt einen Bausteintyp an. Der Typ kann sich auf die Sichtbarkeit und das Verhalten des Bausteins in Microsoft Word auswirken.
public enum BuildingBlockType
Werte
Name | Wert | Beschreibung |
---|---|---|
None | 0 | Für den Baustein sind keine Typinformationen angegeben. |
AutomaticallyReplaceNameWithContent | 1 | Ermöglicht das automatische Einfügen des Bausteins in das Dokument, wenn sein Name in eine Anwendung eingegeben wird. |
StructuredDocumentTagPlaceholderText | 2 | Der Baustein ist ein strukturierter Dokument-Tag-Platzhaltertext. |
FormFieldHelpText | 3 | Der Baustein ist ein Formularfeld-Hilfetext. |
Normal | 4 | Der Baustein ist ein normaler (d. h. regulärer) Glossardokumenteintrag. |
AutoCorrect | 5 | Der Baustein ist mit den Rechtschreib- und Grammatiktools verknüpft. |
AutoText | 6 | Der Baustein ist ein AutoText-Eintrag. |
All | 7 | Der Baustein ist allen Typen zugeordnet. |
Default | 0 | Speichern unterNone . |
Bemerkungen
Entspricht demST_DocPartType Geben Sie OOXML ein.
Beispiele
Zeigt, wie man einem Dokument einen benutzerdefinierten Baustein hinzufügt.
public void CreateAndInsert()
{
// Das Glossardokument eines Dokuments speichert Bausteine.
Document doc = new Document();
GlossaryDocument glossaryDoc = new GlossaryDocument();
doc.GlossaryDocument = glossaryDoc;
// Erstellen Sie einen Baustein, benennen Sie ihn und fügen Sie ihn dann dem Glossardokument hinzu.
BuildingBlock block = new BuildingBlock(glossaryDoc)
{
Name = "Custom Block"
};
glossaryDoc.AppendChild(block);
// Alle neuen Baustein-GUIDs haben standardmäßig denselben Nullwert, und wir können ihnen einen neuen eindeutigen Wert geben.
Assert.AreEqual("00000000-0000-0000-0000-000000000000", block.Guid.ToString());
block.Guid = Guid.NewGuid();
// Die folgenden Eigenschaften kategorisieren Bausteine
// in das Menü gelangen wir in Microsoft Word über „Einfügen“ -> „Schnellteile“ -> „Baustein-Organizer“.
Assert.AreEqual("(Empty Category)", block.Category);
Assert.AreEqual(BuildingBlockType.None, block.Type);
Assert.AreEqual(BuildingBlockGallery.All, block.Gallery);
Assert.AreEqual(BuildingBlockBehavior.Content, block.Behavior);
// Bevor wir diesen Baustein zu unserem Dokument hinzufügen können, müssen wir ihm einige Inhalte geben,
// was wir mit einem Dokumentbesucher tun werden. Dieser Besucher legt außerdem eine Kategorie, eine Galerie und ein Verhalten fest.
BuildingBlockVisitor visitor = new BuildingBlockVisitor(glossaryDoc);
block.Accept(visitor);
// Wir können über das Glossardokument auf den Block zugreifen, den wir gerade erstellt haben.
BuildingBlock customBlock = glossaryDoc.GetBuildingBlock(BuildingBlockGallery.QuickParts,
"My custom building blocks", "Custom Block");
// Der Block selbst ist ein Abschnitt, der den Text enthält.
Assert.AreEqual($"Text inside {customBlock.Name}\f", customBlock.FirstSection.Body.FirstParagraph.GetText());
Assert.AreEqual(customBlock.FirstSection, customBlock.LastSection);
// Jetzt können wir es als neuen Abschnitt in das Dokument einfügen.
doc.AppendChild(doc.ImportNode(customBlock.FirstSection, true));
// Wir können es auch im Building Blocks Organizer von Microsoft Word finden und manuell platzieren.
doc.Save(ArtifactsDir + "BuildingBlocks.CreateAndInsert.dotx");
}
/// <summary>
/// Richtet einen besuchten Baustein ein, der als Schnellteil in das Dokument eingefügt wird, und fügt seinem Inhalt Text hinzu.
/// </summary>
public class BuildingBlockVisitor : DocumentVisitor
{
public BuildingBlockVisitor(GlossaryDocument ownerGlossaryDoc)
{
mBuilder = new StringBuilder();
mGlossaryDoc = ownerGlossaryDoc;
}
public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
{
// Konfigurieren Sie den Baustein als Schnellteil und fügen Sie Eigenschaften hinzu, die vom Building Blocks Organizer verwendet werden.
block.Behavior = BuildingBlockBehavior.Paragraph;
block.Category = "My custom building blocks";
block.Description =
"Using this block in the Quick Parts section of word will place its contents at the cursor.";
block.Gallery = BuildingBlockGallery.QuickParts;
// Einen Abschnitt mit Text hinzufügen.
// Durch das Einfügen des Blocks in das Dokument wird dieser Abschnitt mit seinen untergeordneten Knoten an der Position angehängt.
Section section = new Section(mGlossaryDoc);
block.AppendChild(section);
block.FirstSection.EnsureMinimum();
Run run = new Run(mGlossaryDoc, "Text inside " + block.Name);
block.FirstSection.Body.FirstParagraph.AppendChild(run);
return VisitorAction.Continue;
}
public override VisitorAction VisitBuildingBlockEnd(BuildingBlock block)
{
mBuilder.Append("Visited " + block.Name + "\r\n");
return VisitorAction.Continue;
}
private readonly StringBuilder mBuilder;
private readonly GlossaryDocument mGlossaryDoc;
}
Siehe auch
- namensraum Aspose.Words.BuildingBlocks
- Montage Aspose.Words