Slide Viewer | Presenting Mode
SlideView has a second job: showing the deck to a room. Presenting mode fits the slide edge to
edge on black with no border and no margin, drops the app’s chrome, and puts a control bar over it
that fades out of the way.
Starting and ending a show
Section titled “Starting and ending a show”<office:SlideView x:Name="Viewer" Deck="{Binding Deck}" IsPresenting="{Binding Presenting}" PresentingChanged="OnPresentingChanged" />this.Viewer.StartPresenting();this.Viewer.StopPresenting();this.Viewer.TogglePresenting();Blazor
Section titled “Blazor”<SlideView @ref="viewer" Deck="deck" @bind-IsPresenting="presenting" />
@code { SlideView? viewer; bool presenting;
Task PresentAsync() => this.viewer!.StartPresentingAsync();}What the show gives you
Section titled “What the show gives you”| Advance | Tap or click anywhere. The left quarter goes back. Swipe on MAUI, wheel and arrow keys on Blazor. |
| Control bar | Previous, a counter, next, Notes, Exit. Fades after a few seconds of no input and comes back on a touch or pointer move. Off with ShowPresenterControls. |
| Speaker notes | The Notes button appears only when some slide in the deck has notes. The panel it opens does not fade with the bar. |
| Leaving | Escape on Blazor, the back gesture on MAUI, or Exit. IsPresenting writes back either way. |
| Keys (Blazor) | F5 starts a show, Escape leaves one — PowerPoint’s own. |
| Screen | MAUI keeps the display awake for the length of the show (KeepScreenOnWhilePresenting, default on). |
Mode is ignored while presenting and restored when the show ends. A thumbnail wall is how you
find a slide, not how you show one — so entering a show from SlideViewMode.Grid presents the current
slide and puts the grid back afterwards. The inline viewer is left on the slide the show ended on,
not the one it started from.
How each host goes full screen
Section titled “How each host goes full screen”MAUI pushes a modal page. Re-parenting the viewer would rebuild its platform view — a visible
stall on a canvas — and would mean lifting it out of whatever layout the consumer put it in and
putting it back exactly right afterwards. The show page carries its own SlideView over the same
deck. It is also why the platform back gesture works: the page is a real page, and dismissing it ends
the show through IsPresenting rather than popping out from under the viewer.
Blazor covers the viewport with CSS and asks for fullscreen on top of that. In that order,
deliberately: requestFullscreen can be refused — an iframe without allowfullscreen, iOS Safari,
prerendering, a gesture the browser did not accept — and a refusal still has to give the room a
full-window deck rather than nothing at all. The fullscreenchange listener is what keeps
IsPresenting honest about exits the component never asked for, since Escape and F11 never reach
its own key handler.
Presenting also pins the theme. The surround is black whatever the app or page is set to, and the border between slide and surround is dropped — a viewer’s chrome is part of an app, but on a projector any lift at all reads as a grey frame around the deck.
Notes on the notes
Section titled “Notes on the notes”The presenter panel reads Slide.Notes, the same speaker notes the inline viewer exposes:
deck.Slides[0].Notes;viewer.CurrentNotes; // Blazor: notes on the slide being shownIt stays open once opened. Notes are read while you are talking rather than while you are moving the pointer, so fading them on the bar’s timer would mean wiggling the mouse to finish a sentence.


