Skip to content
Shiny.NET

Slide Editor | Slide Show & Presenter View

The Slide Show tab: From Beginning, From Current Slide, Presenter View and Hide Slide.

The show is the same one the Slide Viewer gives — the slide edge to edge on black, an auto-hiding presenter bar, click or tap to advance with the left quarter going back — because it is the viewer: the editor hands a SlideView the deck it is already holding. What plays is what you typed a moment ago; nothing is saved or reloaded to get there.

It honours transitions, animations, hidden slides and hyperlinks (web links open in the browser, slide links jump), and plays audio and video on tap through the host.

await view.StartPresentingAsync(); // Blazor
view.StartPresenting(); // MAUI
await view.StartPresentingAsync(0); // from the top
view.StartPresenting(from: null, presenterView: true); // presenter view
Member
IsPresenting Read-only. A show is started by calling, never by assigning a parameter
StartPresentingAsync(int? from, bool presenterView) / StartPresenting(...) From the slide being edited unless told otherwise
StopPresentingAsync() / StopPresenting() Ends it. A no-op when nothing is playing
PresentingChanged However the show ended — Exit, Escape, F11, the Android back gesture
ShowPresenterControls The auto-hiding bar. Default true
KeepScreenOnWhilePresenting MAUI only, default true

Starting a show clears the selection; ending it leaves the editor on the slide the show ended on, with focus back on the surface.

F5 plays from the beginning and Shift+F5 from the current slide. On Blazor, preventDefault is fixed at render time — one keystroke behind the handler that decides it — so a bound F5 could reach the browser and reload the page, unsaved deck and all. The editor therefore suppresses F5 and its own Ctrl combinations synchronously in wwwroot/slideEditor.js before .NET sees them. On MAUI the keys arrive as SlideShortcut.ShowFromBeginning / ShowFromCurrent through SlideEditor.HandleShortcut.

presenterView: true shows the current slide beside the next one, the speaker notes, an elapsed timer with pause, and black / white screen buttons.

On Blazor there is no separate audience window — presenter view is a side panel in the same page.

Hide Slide writes show="0" on the slide: it is skipped in a show and dimmed in the rail, and still saved in the deck.

c.ToggleHideSlide();
view.ExportSlidePng(slide, width: 1920);
view.ExportSlidesPng(width: 1280);
view.ExportPdf(); // one page per visible slide

ExportPdf uses SKDocument.CreatePdf. The painter behind all three is SlideExporter in Shiny.Controls.Office.Skia, usable on a deck with no view. The backstage’s Export offers the same.