GetBuildingBlock
GlossaryDocument.GetBuildingBlock method
Recherche un bloc de construction en utilisant la galerie, la catégorie et le nom spécifiés.
public BuildingBlock GetBuildingBlock(BuildingBlockGallery gallery, string category, string name)
Paramètre | Taper | La description |
---|---|---|
gallery | BuildingBlockGallery | Les critères de la galerie. |
category | String | Les critères de catégorie. Peut êtrenul , auquel cas il ne sera pas utilisé à des fins de comparaison. |
name | String | Critères de nom du bloc de construction. |
Return_Value
Le bloc de construction correspondant ounul
si aucune correspondance n’a été trouvée.
Remarques
Il s’agit d’une méthode pratique qui parcourt tous les blocs de construction de cette collection et renvoie le premier bloc de construction qui correspond à la galerie, à la catégorie et au nom spécifiés.
Microsoft Word organise les blocs de construction en galeries. Les galeries sont prédéfinies à l’aide duBuildingBlockGallery
enum. Dans chaque galerie, les blocs de construction peuvent être organisés en une ou plusieurs catégories. Le nom de la catégorie est une chaîne. Chaque élément de construction a un nom. Il n’est pas garanti qu’un nom de bloc de construction soit unique.
Exemples
Montre les moyens d’accéder aux blocs de construction dans un document glossaire.
public void GlossaryDocument()
{
Document doc = new Document();
GlossaryDocument glossaryDoc = new GlossaryDocument();
glossaryDoc.AppendChild(new BuildingBlock(glossaryDoc) { Name = "Block 1" });
glossaryDoc.AppendChild(new BuildingBlock(glossaryDoc) { Name = "Block 2" });
glossaryDoc.AppendChild(new BuildingBlock(glossaryDoc) { Name = "Block 3" });
glossaryDoc.AppendChild(new BuildingBlock(glossaryDoc) { Name = "Block 4" });
glossaryDoc.AppendChild(new BuildingBlock(glossaryDoc) { Name = "Block 5" });
Assert.AreEqual(5, glossaryDoc.BuildingBlocks.Count);
doc.GlossaryDocument = glossaryDoc;
// Il existe différentes manières d'accéder aux blocs de construction.
// 1 - Récupère les premier/dernier blocs de construction de la collection :
Assert.AreEqual("Block 1", glossaryDoc.FirstBuildingBlock.Name);
Assert.AreEqual("Block 5", glossaryDoc.LastBuildingBlock.Name);
// 2 - Récupère un bloc de construction par index :
Assert.AreEqual("Block 2", glossaryDoc.BuildingBlocks[1].Name);
Assert.AreEqual("Block 3", glossaryDoc.BuildingBlocks.ToArray()[2].Name);
// 3 - Obtenez le premier bloc de construction qui correspond à une galerie, un nom et une catégorie :
Assert.AreEqual("Block 4",
glossaryDoc.GetBuildingBlock(BuildingBlockGallery.All, "(Empty Category)", "Block 4").Name);
// Nous ferons cela en utilisant un visiteur personnalisé,
// qui donnera à chaque BuildingBlock du GlossaryDocument un GUID unique
GlossaryDocVisitor visitor = new GlossaryDocVisitor();
glossaryDoc.Accept(visitor);
Console.WriteLine(visitor.GetText());
// Dans Microsoft Word, nous pouvons accéder aux blocs de construction via "Insérer" -> "Pièces rapides" -> "Organisateur de blocs de construction".
doc.Save(ArtifactsDir + "BuildingBlocks.GlossaryDocument.dotx");
}
/// <summary>
/// Donne à chaque bloc de construction d'un document de glossaire visité un GUID unique.
/// Stocke les paires de blocs de construction GUID dans un dictionnaire.
/// </summary>
public class GlossaryDocVisitor : DocumentVisitor
{
public GlossaryDocVisitor()
{
mBlocksByGuid = new Dictionary<Guid, BuildingBlock>();
mBuilder = new StringBuilder();
}
public string GetText()
{
return mBuilder.ToString();
}
public Dictionary<Guid, BuildingBlock> GetDictionary()
{
return mBlocksByGuid;
}
public override VisitorAction VisitGlossaryDocumentStart(GlossaryDocument glossary)
{
mBuilder.AppendLine("Glossary document found!");
return VisitorAction.Continue;
}
public override VisitorAction VisitGlossaryDocumentEnd(GlossaryDocument glossary)
{
mBuilder.AppendLine("Reached end of glossary!");
mBuilder.AppendLine("BuildingBlocks found: " + mBlocksByGuid.Count);
return VisitorAction.Continue;
}
public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
{
block.Guid = Guid.NewGuid();
mBlocksByGuid.Add(block.Guid, block);
return VisitorAction.Continue;
}
public override VisitorAction VisitBuildingBlockEnd(BuildingBlock block)
{
mBuilder.AppendLine("\tVisited block \"" + block.Name + "\"");
mBuilder.AppendLine("\t Type: " + block.Type);
mBuilder.AppendLine("\t Gallery: " + block.Gallery);
mBuilder.AppendLine("\t Behavior: " + block.Behavior);
mBuilder.AppendLine("\t Description: " + block.Description);
return VisitorAction.Continue;
}
private readonly Dictionary<Guid, BuildingBlock> mBlocksByGuid;
private readonly StringBuilder mBuilder;
}
Voir également
- class BuildingBlock
- enum BuildingBlockGallery
- class GlossaryDocument
- espace de noms Aspose.Words.BuildingBlocks
- Assemblée Aspose.Words