BuildingBlock
Innehåll
[
Dölj
]BuildingBlock class
Representerar en post i ett ordlistadokument, till exempel ett byggblock, en autotext eller en autokorrigeringspost.
För att lära dig mer, besökAspose.Words-dokumentobjektmodell (DOM) dokumentationsartikel.
public class BuildingBlock : CompositeNode
Konstruktörer
| namn | Beskrivning |
|---|---|
| BuildingBlock(GlossaryDocument) | Initierar en ny instans av den här klassen. |
Egenskaper
| namn | Beskrivning |
|---|---|
| Behavior { get; set; } | Anger beteendet som ska tillämpas när innehållet i byggblocket infogas i huvuddokumentet. |
| Category { get; set; } | Anger kategoriseringen på andra nivån för byggblocket. |
| Count { get; } | Hämtar antalet omedelbara barn till denna nod. |
| CustomNodeId { get; set; } | Anger anpassad nodidentifierare. |
| Description { get; set; } | Hämtar eller anger beskrivningen som är associerad med detta byggblock. |
| virtual Document { get; } | Hämtar dokumentet som denna nod tillhör. |
| FirstChild { get; } | Hämtar nodens första barn. |
| FirstSection { get; } | Hämtar den första sektionen i byggblocket. |
| Gallery { get; set; } | Anger den första kategoriseringen för byggblocket i syfte att klassificera eller sortera användargränssnittet. |
| Guid { get; set; } | Hämtar eller ställer in en identifierare (ett 128-bitars GUID) som unikt identifierar detta byggblock. |
| HasChildNodes { get; } | Returersann om den här noden har några undernoder. |
| override IsComposite { get; } | Returersann eftersom denna nod kan ha underordnade noder. |
| LastChild { get; } | Hämtar nodens sista barn. |
| LastSection { get; } | Hämtar den sista sektionen i byggblocket. |
| Name { get; set; } | Hämtar eller anger namnet på detta byggblock. |
| NextSibling { get; } | Hämtar noden som följer direkt efter denna nod. |
| override NodeType { get; } | ReturnerarBuildingBlock värde. |
| ParentNode { get; } | Hämtar den omedelbara föräldern till denna nod. |
| PreviousSibling { get; } | Hämtar noden som omedelbart föregår denna nod. |
| Range { get; } | Returnerar enRangeobjekt som representerar den del av ett dokument som finns i denna nod. |
| Sections { get; } | Returnerar en samling som representerar alla sektioner i byggblocket. |
| Type { get; set; } | Anger byggstenstypen. |
Metoder
| namn | Beskrivning |
|---|---|
| override Accept(DocumentVisitor) | Tar emot en besökare. |
| override AcceptEnd(DocumentVisitor) | Accepterar en besökare för att besöka slutet av byggblocket. |
| override AcceptStart(DocumentVisitor) | Accepterar en besökare för att besöka början av byggblocket. |
| AppendChild<T>(T) | Lägger till den angivna noden i slutet av listan över underordnade noder för denna nod. |
| Clone(bool) | Skapar en duplikat av noden. |
| CreateNavigator() | Skapar en navigator som kan användas för att korsa och läsa noder. |
| GetAncestor(NodeType) | Hämtar den första förfadern till den angivnaNodeType . |
| GetAncestor(Type) | Hämtar den första förfadern till den angivna objekttypen. |
| GetChild(NodeType, int, bool) | Returnerar en N:te underordnad nod som matchar den angivna typen. |
| GetChildNodes(NodeType, bool) | Returnerar en live-samling av underordnade noder som matchar den angivna typen. |
| GetEnumerator() | Ger stöd för iterationen för varje stil över de underordnade noderna till denna nod. |
| override GetText() | Hämtar texten för denna nod och alla dess underordnade noder. |
| IndexOf(Node) | Returnerar indexet för den angivna undernoden i undernodsmatrisen. |
| InsertAfter<T>(T, Node) | Infogar den angivna noden omedelbart efter den angivna referensnoden. |
| InsertBefore<T>(T, Node) | Infogar den angivna noden omedelbart före den angivna referensnoden. |
| NextPreOrder(Node) | Hämtar nästa nod enligt algoritmen för förbeställningsträdtraversering. |
| PrependChild<T>(T) | Lägger till den angivna noden i början av listan över underordnade noder för denna nod. |
| PreviousPreOrder(Node) | Hämtar föregående nod enligt algoritmen för trädtraversering i förbeställning. |
| Remove() | Tar bort sig själv från föräldern. |
| RemoveAllChildren() | Tar bort alla undernoder till den aktuella noden. |
| RemoveChild<T>(T) | Tar bort den angivna undernoden. |
| RemoveSmartTags() | Tar bort allaSmartTag underordnade noder till den aktuella noden. |
| SelectNodes(string) | Väljer en lista med noder som matchar XPath-uttrycket. |
| SelectSingleNode(string) | Väljer den förstaNode som matchar XPath-uttrycket. |
| ToString(SaveFormat) | Exporterar nodens innehåll till en sträng i det angivna formatet. |
| ToString(SaveOptions) | Exporterar nodens innehåll till en sträng med de angivna sparalternativen. |
Anmärkningar
BuildingBlock kan endast innehållaSection noder.
BuildingBlock kan bara vara ett barn avGlossaryDocument.
Du kan skapa nya byggstenar och infoga dem i ett ordlistadokument. Du kan ändra eller ta bort befintliga byggstenar. Du kan kopiera eller flytta byggstenar mellan dokument. Du kan infoga innehållet i ett byggsten i ett dokument.
Motsvarar dendocPart ,docPartPr ochdocPartBodyelement i OOXML.
Exempel
Visar hur man lägger till ett anpassat byggblock i ett dokument.
public void CreateAndInsert()
{
// Ett dokuments ordlista innehåller byggstenar.
Document doc = new Document();
GlossaryDocument glossaryDoc = new GlossaryDocument();
doc.GlossaryDocument = glossaryDoc;
// Skapa en byggsten, namnge den och lägg sedan till den i ordlistadokumentet.
BuildingBlock block = new BuildingBlock(glossaryDoc)
{
Name = "Custom Block"
};
glossaryDoc.AppendChild(block);
// Alla nya byggblocks-GUID:er har samma nollvärde som standard, och vi kan ge dem ett nytt unikt värde.
Assert.AreEqual("00000000-0000-0000-0000-000000000000", block.Guid.ToString());
block.Guid = Guid.NewGuid();
// Följande egenskaper kategoriserar byggstenar
// i menyn som vi kan komma åt i Microsoft Word via "Insert" -> "Quick Parts" -> "Building Blocks 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);
// Innan vi kan lägga till den här byggstenen i vårt dokument måste vi ge den lite innehåll,
// vilket vi kommer att göra med hjälp av en dokumentbesökare. Denna besökare kommer också att ange en kategori, ett galleri och ett beteende.
BuildingBlockVisitor visitor = new BuildingBlockVisitor(glossaryDoc);
// Besök början/slut av BuildingBlock.
block.Accept(visitor);
// Vi kan komma åt blocket som vi just skapade från ordlistadokumentet.
BuildingBlock customBlock = glossaryDoc.GetBuildingBlock(BuildingBlockGallery.QuickParts,
"My custom building blocks", "Custom Block");
// Själva blocket är en sektion som innehåller texten.
Assert.AreEqual($"Text inside {customBlock.Name}\f", customBlock.FirstSection.Body.FirstParagraph.GetText());
Assert.AreEqual(customBlock.FirstSection, customBlock.LastSection);
// Nu kan vi infoga det i dokumentet som ett nytt avsnitt.
doc.AppendChild(doc.ImportNode(customBlock.FirstSection, true));
// Vi kan också hitta den i Microsoft Words Building Blocks Organizer och placera den manuellt.
doc.Save(ArtifactsDir + "BuildingBlocks.CreateAndInsert.dotx");
}
/// <summary>
/// Ställer in ett besökt byggblock som ska infogas i dokumentet som en snabbdel och lägger till text i dess innehåll.
/// </summary>
public class BuildingBlockVisitor : DocumentVisitor
{
public BuildingBlockVisitor(GlossaryDocument ownerGlossaryDoc)
{
mBuilder = new StringBuilder();
mGlossaryDoc = ownerGlossaryDoc;
}
public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
{
// Konfigurera byggblocket som en snabbdel och lägg till egenskaper som används av Building Blocks Organizer.
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;
// Lägg till ett avsnitt med text.
// Om blocket infogas i dokumentet läggs det här avsnittet till med dess underordnade noder på platsen.
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;
}
Se även
- class CompositeNode
- namnutrymme Aspose.Words.BuildingBlocks
- hopsättning Aspose.Words