Skip to main content

BookmarkNode.Brick Property

OBSOLETE

Use the Page.GetBrickByIndices method instead.

Gets the brick which the current bookmark is associated with.

Namespace: DevExpress.XtraPrinting

Assembly: DevExpress.Printing.v22.2.Core.dll

NuGet Packages: DevExpress.Printing.Core, DevExpress.Win.Dashboard.Design

Declaration

[Obsolete("Use the Page.GetBrickByIndices method instead.")]
public Brick Brick { get; }

Property Value

Type Description
Brick

A Brick object representing the brick which the current bookmark references.

Remarks

Note, that if the specified brick is split across two or more pages, then the bookmark will reference the part of the brick which is situated on the page returned by the BookmarkNode.Page property.

Example

This example illustrates how to make Print Preview display a Document Map listing all bookmarks assigned to a Document‘s elements.

The following code adds five bricks to the Detail section of a document and then assigns bookmarks to each brick.

Note that the Document Map button is automatically enabled in Print Preview when a displayed document has any bookmarks.

using System;
using System.Drawing;
using System.Windows.Forms;
using DevExpress.XtraPrinting;
using DevExpress.XtraPrinting.Native;
// ...
        private void button1_Click(object sender, EventArgs e) {
            // Create a new Printing System.
            PrintingSystem ps = new PrintingSystem();

            // Create a new link and add a handler to its CreateDetailArea event.
            Link link = new Link(ps);
            link.CreateDetailArea += new CreateAreaEventHandler(OnDocumentCreated);

            // Create a document for the link.
            link.CreateDocument();

            // Create a document's map.
            CreateDocumentMap(ps.Document);

            // Show the report's preview.
            link.ShowPreview();

            // Remove the handler for the CreateDetailArea event.
            link.CreateDetailArea -= new CreateAreaEventHandler(OnDocumentCreated);
        }

        private void OnDocumentCreated(object sender, CreateAreaEventArgs e) {
            // Draw 5 bricks on a document.
            for (int i = 0; i < 5; i++) {
                TextBrick brick = new TextBrick();
                brick.Text = "Item #" + (i + 1).ToString();
                brick.BackColor = Color.Yellow;
                brick.Rect = new Rectangle(10, i * 100, 100, 50);
                e.Graph.DrawBrick(brick, brick.Rect);
            }
        }

        private void CreateDocumentMap(Document document) {
            // Create a collection of 'Page and Brick' pairs.
            BrickPagePairCollection pairs = new BrickPagePairCollection();

            // Create an enumerator of all document bricks.
            DocumentBrickEnumerator en = new DocumentBrickEnumerator(document);

            // Add the 'Brick-Page' pairs for all document bricks.
            while (en.MoveNext()) {
                pairs.Add(BrickPagePair.Create(en.Brick, en.Page));
            }

            // Add bookmarks for all pairs to the document's map.
            foreach (BrickPagePair pair in pairs) {
                Page page = document.Pages[pair.PageIndex];

                Brick brick = page.GetBrickByIndices(pair.BrickIndices) as Brick;
                string BrickText = ((TextBrick)brick).Text;
                BookmarkNode mapNode = new BookmarkNode(BrickText, brick, page);
                document.BookmarkNodes.Add(mapNode);
            }
        }

The following code snippet (auto-collected from DevExpress Examples) contains a reference to the Brick property.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

See Also