Class BuildingBlock
Contenuti
[
Nascondere
]BuildingBlock class
Rappresenta una voce del documento del glossario come Building Block, Glossario o una voce di correzione automatica.
public class BuildingBlock : CompositeNode
Costruttori
Nome | Descrizione |
---|---|
BuildingBlock(GlossaryDocument) | Inizializza una nuova istanza di questa classe. |
Proprietà
Nome | Descrizione |
---|---|
Behavior { get; set; } | Specifica il comportamento da applicare quando il contenuto del building block viene inserito nel documento principale. |
Category { get; set; } | Specifica la categorizzazione di secondo livello per il building block. |
ChildNodes { get; } | Ottiene tutti i nodi figlio immediati di questo nodo. |
Count { get; } | Ottiene il numero di figli immediati di questo nodo. |
CustomNodeId { get; set; } | Specifica l’identificatore del nodo personalizzato. |
Description { get; set; } | Ottiene o imposta la descrizione associata a questo blocco predefinito. |
virtual Document { get; } | Ottiene il documento a cui appartiene questo nodo. |
FirstChild { get; } | Ottiene il primo figlio del nodo. |
FirstSection { get; } | Ottiene la prima sezione del building block. |
Gallery { get; set; } | Specifica la categorizzazione di primo livello per il building block ai fini della classificazione o dell’ordinamento dell’interfaccia utente. |
Guid { get; set; } | Ottiene o imposta un identificatore (un GUID a 128 bit) che identifica in modo univoco questo blocco predefinito. |
HasChildNodes { get; } | Restituisce true se questo nodo ha nodi figlio. |
override IsComposite { get; } | Restituisce true poiché questo nodo può avere nodi figlio. |
LastChild { get; } | Ottiene l’ultimo figlio del nodo. |
LastSection { get; } | Ottiene l’ultima sezione nel blocco predefinito. |
Name { get; set; } | Ottiene o imposta il nome di questo blocco predefinito. |
NextSibling { get; } | Ottiene il nodo immediatamente successivo a questo nodo. |
override NodeType { get; } | Restituisce ilBuildingBlock valore. |
ParentNode { get; } | Ottiene il genitore immediato di questo nodo. |
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. |
Sections { get; } | Restituisce una raccolta che rappresenta tutte le sezioni nel blocco predefinito. |
Type { get; set; } | Specifica il tipo di blocco predefinito. |
Metodi
Nome | Descrizione |
---|---|
override Accept(DocumentVisitor) | Accetta un visitatore. |
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. |
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. |
GetEnumerator() | Fornisce supporto per ogni iterazione di stile sui nodi figlio di questo nodo. |
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. |
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. |
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. |
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
BuildingBlock
può contenere soloSection
nodi.
BuildingBlock
può essere solo un figlio diGlossaryDocument
.
È possibile creare nuovi blocchi predefiniti e inserirli in un documento di glossario. È possibile modificare o eliminare blocchi esistenti. Puoi copiare o spostare i building block tra i documenti. È possibile inserire il contenuto di un building block in un documento.
Corrisponde al docPart , docPartPr e docPartBodyelementi in OOXML.
Esempi
Mostra come aggiungere un blocco predefinito personalizzato a un documento.
public void CreateAndInsert()
{
// Il documento del glossario di un documento memorizza i blocchi costitutivi.
Document doc = new Document();
GlossaryDocument glossaryDoc = new GlossaryDocument();
doc.GlossaryDocument = glossaryDoc;
// Crea un building block, assegnagli un nome e quindi aggiungilo al documento del glossario.
BuildingBlock block = new BuildingBlock(glossaryDoc)
{
Name = "Custom Block"
};
glossaryDoc.AppendChild(block);
// Tutti i nuovi GUID dei blocchi predefiniti hanno lo stesso valore zero per impostazione predefinita e possiamo assegnare loro un nuovo valore univoco.
Assert.AreEqual("00000000-0000-0000-0000-000000000000", block.Guid.ToString());
block.Guid = Guid.NewGuid();
// Le seguenti proprietà classificano i blocchi predefiniti
// nel menu possiamo accedere in Microsoft Word tramite "Inserisci" -> "Parti rapide" -> "Organizzatore di blocchi di costruzione".
Assert.AreEqual("(Empty Category)", block.Category);
Assert.AreEqual(BuildingBlockType.None, block.Type);
Assert.AreEqual(BuildingBlockGallery.All, block.Gallery);
Assert.AreEqual(BuildingBlockBehavior.Content, block.Behavior);
// Prima di poter aggiungere questo blocco di costruzione al nostro documento, dovremo dargli alcuni contenuti,
// cosa che faremo usando un visitatore del documento. Questo visitatore imposterà anche una categoria, una galleria e un comportamento.
BuildingBlockVisitor visitor = new BuildingBlockVisitor(glossaryDoc);
block.Accept(visitor);
// Possiamo accedere al blocco che abbiamo appena creato dal documento del glossario.
BuildingBlock customBlock = glossaryDoc.GetBuildingBlock(BuildingBlockGallery.QuickParts,
"My custom building blocks", "Custom Block");
// Il blocco stesso è una sezione che contiene il testo.
Assert.AreEqual($"Text inside {customBlock.Name}\f", customBlock.FirstSection.Body.FirstParagraph.GetText());
Assert.AreEqual(customBlock.FirstSection, customBlock.LastSection);
// Ora possiamo inserirlo nel documento come una nuova sezione.
doc.AppendChild(doc.ImportNode(customBlock.FirstSection, true));
// Possiamo anche trovarlo nell'organizzatore dei blocchi predefiniti di Microsoft Word e posizionarlo manualmente.
doc.Save(ArtifactsDir + "BuildingBlocks.CreateAndInsert.dotx");
}
/// <summary>
/// Imposta un blocco di costruzione visitato da inserire nel documento come parte rapida e aggiunge testo al suo contenuto.
/// </summary>
public class BuildingBlockVisitor : DocumentVisitor
{
public BuildingBlockVisitor(GlossaryDocument ownerGlossaryDoc)
{
mBuilder = new StringBuilder();
mGlossaryDoc = ownerGlossaryDoc;
}
public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
{
// Configura il building block come parte rapida e aggiungi le proprietà usate da 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;
// Aggiungi una sezione con testo.
// L'inserimento del blocco nel documento aggiungerà questa sezione con i suoi nodi figlio nella posizione.
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;
}
Guarda anche
- class CompositeNode
- spazio dei nomi Aspose.Words.BuildingBlocks
- assemblea Aspose.Words