Skip to content
Shiny.NET

Document Editor | Page Layout & Views

The Design, Layout and View tabs, plus the ruler and status bar the Word window adds.

SetPageColor(color) w:background, plus w:displayBackgroundShape so Word shows it
SetWatermarkText("DRAFT") Persisted — VML WordArt in the default header, the way Word writes one, so Word shows it too. Presets CONFIDENTIAL / DRAFT / DO NOT COPY / ASAP, or custom text. WatermarkText reads it back
SetPaperSize(PaperSize.A4) Letter, A4, Legal, A5; orientation kept
SetPageOrientation(...) Portrait or Landscape — swaps the dimensions and records w:orient, leaving margins alone, as Word does
SetPageMargins(...) Word’s Normal / Narrow / Moderate / Wide presets or your own — see Page margins
SetColumns(1..3) Written as w:cols and saved — but see the limitation below
InsertSectionBreak(...) Layout ▸ Breaks, as well as Insert ▸ Pages

The text watermark is the one that is saved into the file. The picture watermark (the Watermark property, and Design ▸ Page Background ▸ Picture Watermark…) is a display watermark: drawn behind the page — per page in print layout, once behind the viewport in reflow — and never written, because Word, Excel and PowerPoint have no common way to store one.

Insert ▸ Header & Footer prompts for the header or footer line, seeded with whatever is there; an empty line removes it. Page Number is a menu — header or footer × left, centre or right — and appends to a header already there rather than replacing it. Headers and footers are asked for rather than edited in place on the page, and only show in print layout; setting one in reflow still writes it.

In Print Layout the ruler shows the caret paragraph’s indents and tab stops and the section’s margins. Dragging an indent marker indents the selected paragraphs, a click adds a tab stop of the selector’s kind, dragging a tab off removes it, and dragging a margin edge moves the margin — each one undo step. Tab stops are saved as w:tabs.

c.CurrentTabStops;
c.SetTabStops(stops);
c.SetIndents(left, right, firstLine);
Read Mode (ReadMode) Hides the ribbon and reflows the document into one read-only column, with an Exit button. The status bar’s Read button does the same
Print / Web Layout Sheets of paper, or one continuous column
Navigation Pane (ShowNavigationPane) The headings (click to jump; the one the caret is under is marked) and a Results tab listing every search hit with its context. Ctrl+F opens it
Formatting Marks Pilcrows and space dots (ShowFormattingMarks)
Zoom The status bar slider, − / +, the Zoom dialog (page width / text width / whole page), pinch and Ctrl+wheel
Focus The status bar’s Focus button hides all the chrome; see Focus mode

What a status bar or a navigation pane of your own binds to:

DocumentStatistics s = c.Statistics; // CurrentPage, Pages, Words, CharactersNoSpaces, CharactersWithSpaces, Paragraphs, Lines, SelectedWords
c.StatisticsChanged += ...; // an edit, or the caret moving to another page
c.Zoom = 1.25; c.ZoomChanged += ...; // any zoom change: slider, pinch, ctrl-wheel
IReadOnlyList<DocumentHeading> h = c.Headings(); // Level, Text, Paragraph
c.GoToParagraph(h[0].Paragraph);

The views forward them: Statistics, StatisticsChanged, ZoomChanged and CurrentStyleChanged.