BookmarkStart

BookmarkStart class

يمثل بداية الإشارة المرجعية في مستند Word.

لمعرفة المزيد، قم بزيارةالعمل مع الإشارات المرجعية مقالة توثيقية.

public class BookmarkStart : Node

المنشئون

اسموصف
BookmarkStart(DocumentBase, string)تهيئة مثيل جديد لـBookmarkStart فئة.

الخصائص

اسموصف
Bookmark { get; }يحصل على كائن الواجهة الذي يغلف بداية ونهاية الإشارة المرجعية هذه.
CustomNodeId { get; set; }يحدد معرف العقدة المخصصة.
virtual Document { get; }الحصول على المستند الذي تنتمي إليه هذه العقدة.
virtual IsComposite { get; }إرجاعحقيقي إذا كانت هذه العقدة يمكن أن تحتوي على عقد أخرى.
Name { get; set; }الحصول على اسم الإشارة المرجعية أو تعيينه.
NextSibling { get; }يحصل على العقدة التي تلي هذه العقدة مباشرة.
override NodeType { get; }إرجاعBookmarkStart .
ParentNode { get; }يحصل على الأصل المباشر لهذه العقدة.
PreviousSibling { get; }يحصل على العقدة التي تسبق هذه العقدة مباشرة.
Range { get; }إرجاع أRange الكائن الذي يمثل جزء المستند الموجود في هذه العقدة.

طُرق

اسموصف
override Accept(DocumentVisitor)يقبل الزائر.
Clone(bool)إنشاء نسخة مكررة من العقدة.
GetAncestor(NodeType)يحصل على السلف الأول للمحددNodeType .
GetAncestor(Type)الحصول على السلف الأول لنوع الكائن المحدد.
override GetText()إرجاع سلسلة فارغة.
NextPreOrder(Node)الحصول على العقدة التالية وفقًا لخوارزمية اجتياز شجرة الطلب المسبق.
PreviousPreOrder(Node)الحصول على العقدة السابقة وفقًا لخوارزمية اجتياز شجرة الطلب المسبق.
Remove()يزيل نفسه من الأصل.
ToString(SaveFormat)تصدير محتوى العقدة إلى سلسلة بالتنسيق المحدد.
ToString(SaveOptions)تصدير محتوى العقدة إلى سلسلة باستخدام خيارات الحفظ المحددة.

ملاحظات

تتكون الإشارة المرجعية الكاملة في مستند Word من ملفBookmarkStart ومطابقةBookmarkEnd بنفس اسم الإشارة المرجعية.

BookmarkStart وBookmarkEnd هي مجرد علامات داخل document تحدد مكان بدء الإشارة المرجعية وانتهائها.

استخدم الBookmark فئة كـ “واجهة” للعمل مع bookmark ككائن واحد.

أمثلة

يوضح كيفية إضافة الإشارات المرجعية وتحديث محتوياتها.

public void CreateUpdateAndPrintBookmarks()
{
    // أنشئ مستندًا يحتوي على ثلاث إشارات مرجعية، ثم استخدم تطبيق زائر المستند المخصص لطباعة محتوياتها.
    Document doc = CreateDocumentWithBookmarks(3);
    BookmarkCollection bookmarks = doc.Range.Bookmarks;
    PrintAllBookmarkInfo(bookmarks);

    // يمكن الوصول إلى الإشارات المرجعية في مجموعة الإشارات المرجعية عن طريق الفهرس أو الاسم، ويمكن تحديث أسمائها.
    bookmarks[0].Name = $"{bookmarks[0].Name}_NewName";
    bookmarks["MyBookmark_2"].Text = $"Updated text contents of {bookmarks[1].Name}";

    // اطبع جميع الإشارات المرجعية مرة أخرى لرؤية القيم المحدثة.
    PrintAllBookmarkInfo(bookmarks);
}

/// <summary>
/// أنشئ مستندًا يحتوي على عدد معين من الإشارات المرجعية.
/// </summary>
private static Document CreateDocumentWithBookmarks(int numberOfBookmarks)
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    for (int i = 1; i <= numberOfBookmarks; i++)
    {
        string bookmarkName = "MyBookmark_" + i;

        builder.Write("Text before bookmark.");
        builder.StartBookmark(bookmarkName);
        builder.Write($"Text inside {bookmarkName}.");
        builder.EndBookmark(bookmarkName);
        builder.Writeln("Text after bookmark.");
    }

    return doc;
}

/// <summary>
/// استخدم المكرر والزائر لطباعة معلومات كل إشارة مرجعية في المجموعة.
/// </summary>
private static void PrintAllBookmarkInfo(BookmarkCollection bookmarks)
{
    BookmarkInfoPrinter bookmarkVisitor = new BookmarkInfoPrinter();

    // احصل على كل إشارة مرجعية في المجموعة لقبول الزائر الذي سيطبع محتوياتها.
    using (IEnumerator<Bookmark> enumerator = bookmarks.GetEnumerator())
    {
        while (enumerator.MoveNext())
        {
            Bookmark currentBookmark = enumerator.Current;

            if (currentBookmark != null)
            {
                currentBookmark.BookmarkStart.Accept(bookmarkVisitor);
                currentBookmark.BookmarkEnd.Accept(bookmarkVisitor);

                Console.WriteLine(currentBookmark.BookmarkStart.GetText());
            }
        }
    }
}

/// <summary>
/// يطبع محتويات كل إشارة مرجعية تمت زيارتها إلى وحدة التحكم.
/// </summary>
public class BookmarkInfoPrinter : DocumentVisitor
{
    public override VisitorAction VisitBookmarkStart(BookmarkStart bookmarkStart)
    {
        Console.WriteLine($"BookmarkStart name: \"{bookmarkStart.Name}\", Contents: \"{bookmarkStart.Bookmark.Text}\"");
        return VisitorAction.Continue;
    }

    public override VisitorAction VisitBookmarkEnd(BookmarkEnd bookmarkEnd)
    {
        Console.WriteLine($"BookmarkEnd name: \"{bookmarkEnd.Name}\"");
        return VisitorAction.Continue;
    }
}

أنظر أيضا