BuildingBlock
محتويات
[
يخفي
]BuildingBlock class
يمثل إدخال مستند المصطلحات مثل إدخال كتلة البناء أو النص التلقائي أو التصحيح التلقائي.
لمعرفة المزيد، قم بزيارةنموذج كائن المستند (DOM) في Aspose.Words مقالة توثيقية.
public class BuildingBlock : CompositeNode
المنشئون
اسم | وصف |
---|---|
BuildingBlock(GlossaryDocument) | يقوم بتهيئة مثيل جديد لهذه الفئة. |
الخصائص
اسم | وصف |
---|---|
Behavior { get; set; } | يحدد السلوك الذي سيتم تطبيقه عند إدراج محتويات كتلة البناء في المستند الرئيسي. |
Category { get; set; } | يحدد تصنيف المستوى الثاني لكتلة البناء. |
Count { get; } | يحصل على عدد الأبناء المباشرين لهذه العقدة. |
CustomNodeId { get; set; } | يحدد معرف العقدة المخصص. |
Description { get; set; } | يحصل على الوصف المرتبط بكتلة البناء هذه أو يعينه. |
virtual Document { get; } | يحصل على المستند الذي تنتمي إليه هذه العقدة. |
FirstChild { get; } | يحصل على أول طفل للعقدة. |
FirstSection { get; } | يحصل على القسم الأول في كتلة البناء. |
Gallery { get; set; } | يحدد تصنيف المستوى الأول لكتلة البناء لأغراض تصنيف أو فرز واجهة المستخدم. |
Guid { get; set; } | يحصل على أو يعين معرفًا (GUID مكون من 128 بت) يحدد كتلة البناء هذه بشكل فريد. |
HasChildNodes { get; } | إرجاعحقيقي إذا كانت هذه العقدة تحتوي على أي عقد فرعية. |
override IsComposite { get; } | إرجاعحقيقي حيث يمكن لهذه العقدة أن تحتوي على عقد فرعية. |
LastChild { get; } | يحصل على آخر طفل للعقدة. |
LastSection { get; } | يحصل على القسم الأخير في كتلة البناء. |
Name { get; set; } | يحصل على اسم كتلة البناء هذه أو يعينه. |
NextSibling { get; } | يحصل على العقدة التي تلي هذه العقدة مباشرة. |
override NodeType { get; } | يعيدBuildingBlock القيمة. |
ParentNode { get; } | يحصل على الوالد المباشر لهذه العقدة. |
PreviousSibling { get; } | يحصل على العقدة التي تسبق هذه العقدة مباشرةً. |
Range { get; } | يعيدRange الكائن الذي يمثل الجزء من المستند الموجود في هذه العقدة. |
Sections { get; } | يعيد مجموعة تمثل جميع الأقسام في كتلة البناء. |
Type { get; set; } | يحدد نوع كتلة البناء. |
طُرق
اسم | وصف |
---|---|
override Accept(DocumentVisitor) | يقبل زائرًا. |
override AcceptEnd(DocumentVisitor) | يقبل زائرًا لزيارة نهاية BuildingBlock. |
override AcceptStart(DocumentVisitor) | يقبل زائرًا لزيارة بداية BuildingBlock. |
AppendChild<T>(T) | يضيف العقدة المحددة إلى نهاية قائمة العقد الفرعية لهذه العقدة. |
Clone(bool) | ينشئ نسخة مكررة من العقدة. |
CreateNavigator() | ينشئ متصفحًا يمكن استخدامه للتنقل بين العقد وقراءتها. |
GetAncestor(NodeType) | يحصل على السلف الأول للعنصر المحددNodeType . |
GetAncestor(Type) | يحصل على السلف الأول لنوع الكائن المحدد. |
GetChild(NodeType, int, bool) | يعيد عقدة فرعية رقم N تطابق النوع المحدد. |
GetChildNodes(NodeType, bool) | يعيد مجموعة حية من العقد الفرعية التي تطابق النوع المحدد. |
GetEnumerator() | يوفر الدعم لكل تكرار للأسلوب على العقد الفرعية لهذه العقدة. |
override GetText() | يحصل على نص هذه العقدة وجميع أبنائها. |
IndexOf(Node) | يعيد مؤشر العقدة الفرعية المحددة في مجموعة العقد الفرعية. |
InsertAfter<T>(T, Node) | يقوم بإدراج العقدة المحددة فورًا بعد عقدة المرجع المحددة. |
InsertBefore<T>(T, Node) | يقوم بإدراج العقدة المحددة مباشرة قبل عقدة المرجع المحددة. |
NextPreOrder(Node) | يحصل على العقدة التالية وفقًا لخوارزمية عبور شجرة الترتيب المسبق. |
PrependChild<T>(T) | يضيف العقدة المحددة إلى بداية قائمة العقد الفرعية لهذه العقدة. |
PreviousPreOrder(Node) | يحصل على العقدة السابقة وفقًا لخوارزمية عبور شجرة الترتيب المسبق. |
Remove() | يزيل نفسه من الأصل. |
RemoveAllChildren() | يزيل جميع العقد الفرعية للعقدة الحالية. |
RemoveChild<T>(T) | يزيل العقدة الفرعية المحددة. |
RemoveSmartTags() | يزيل الكلSmartTag العقد المنحدرة من العقدة الحالية. |
SelectNodes(string) | يحدد قائمة العقد المطابقة لتعبير XPath. |
SelectSingleNode(string) | يحدد الأولNode الذي يتطابق مع تعبير XPath. |
ToString(SaveFormat) | يصدر محتوى العقدة إلى سلسلة بالتنسيق المحدد. |
ToString(SaveOptions) | يقوم بتصدير محتوى العقدة إلى سلسلة باستخدام خيارات الحفظ المحددة. |
ملاحظات
BuildingBlock
يمكن أن تحتوي فقطSection
العقد.
BuildingBlock
لا يمكن أن يكون إلا طفلاGlossaryDocument
.
يمكنك إنشاء كتل بناء جديدة وإدراجها في مستند مسرد. يمكنك تعديل أو حذف كتل بناء موجودة. يمكنك نسخ أو نقل كتل البناء بين المستندات. يمكنك أيضًا إدراج محتوى كتلة بناء في مستند.
يتوافق معdocPart ،docPartPr وdocPartBodyالعناصر في OOXML.
أمثلة
يوضح كيفية إضافة كتلة بناء مخصصة إلى مستند.
public void CreateAndInsert()
{
// تخزن قائمة المصطلحات الخاصة بالمستند عناصر البناء.
Document doc = new Document();
GlossaryDocument glossaryDoc = new GlossaryDocument();
doc.GlossaryDocument = glossaryDoc;
// قم بإنشاء كتلة بناء، وقم بتسميتها، ثم أضفها إلى مستند المصطلحات.
BuildingBlock block = new BuildingBlock(glossaryDoc)
{
Name = "Custom Block"
};
glossaryDoc.AppendChild(block);
// تحتوي جميع معرفات GUID الجديدة الخاصة بكتل البناء على نفس القيمة الصفرية بشكل افتراضي، ويمكننا منحها قيمة فريدة جديدة.
Assert.AreEqual("00000000-0000-0000-0000-000000000000", block.Guid.ToString());
block.Guid = Guid.NewGuid();
// الخصائص التالية تصنف كتل البناء
// في القائمة يمكننا الوصول إليها في Microsoft Word عبر "إدراج" -> "الأجزاء السريعة" -> "منظم كتل البناء".
Assert.AreEqual("(Empty Category)", block.Category);
Assert.AreEqual(BuildingBlockType.None, block.Type);
Assert.AreEqual(BuildingBlockGallery.All, block.Gallery);
Assert.AreEqual(BuildingBlockBehavior.Content, block.Behavior);
// قبل أن نتمكن من إضافة كتلة البناء هذه إلى مستندنا، سنحتاج إلى إعطائها بعض المحتويات،
// سنستخدم زائر مستند. سيُحدد هذا الزائر أيضًا فئةً ومعرضًا وسلوكًا.
BuildingBlockVisitor visitor = new BuildingBlockVisitor(glossaryDoc);
// قم بزيارة بداية/نهاية BuildingBlock.
block.Accept(visitor);
//يمكننا الوصول إلى الكتلة التي أنشأناها للتو من مستند المصطلحات.
BuildingBlock customBlock = glossaryDoc.GetBuildingBlock(BuildingBlockGallery.QuickParts,
"My custom building blocks", "Custom Block");
// الكتلة نفسها عبارة عن قسم يحتوي على النص.
Assert.AreEqual($"Text inside {customBlock.Name}\f", customBlock.FirstSection.Body.FirstParagraph.GetText());
Assert.AreEqual(customBlock.FirstSection, customBlock.LastSection);
// الآن، يمكننا إدراجه في المستند كقسم جديد.
doc.AppendChild(doc.ImportNode(customBlock.FirstSection, true));
// يمكننا أيضًا العثور عليه في Building Blocks Organizer في Microsoft Word ووضعه يدويًا.
doc.Save(ArtifactsDir + "BuildingBlocks.CreateAndInsert.dotx");
}
/// <summary>
/// يقوم بإعداد كتلة بناء تمت زيارتها ليتم إدراجها في المستند كجزء سريع ويضيف نصًا إلى محتوياته.
/// </summary>
public class BuildingBlockVisitor : DocumentVisitor
{
public BuildingBlockVisitor(GlossaryDocument ownerGlossaryDoc)
{
mBuilder = new StringBuilder();
mGlossaryDoc = ownerGlossaryDoc;
}
public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
{
// قم بتكوين كتلة البناء كجزء سريع، وأضف الخصائص التي يستخدمها منظم كتل البناء.
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;
//أضف قسمًا يحتوي على نص.
// سيؤدي إدراج الكتلة في المستند إلى إضافة هذا القسم مع العقد الفرعية الخاصة به في الموقع.
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;
}
أنظر أيضا
- class CompositeNode
- مساحة الاسم Aspose.Words.BuildingBlocks
- المجسم Aspose.Words