Skip to content
Client v5: BLE, BLE Hosting, HTTP, Jobs - Linux, MacOS, & Blazor Support! Full AOT, RX on BLE only & MANY other features! Power up!

ChatView | Markdown & Input Bar

ChatView’s input bar can show a markdown composition toolbar and render a markdown subset in bubbles — all self-contained, with no dependency on the *.Controls.Markdown add-on package.

The toolbar is gated by ChatSessionInfo.BodyPermissions. A button appears only for a granted flag; MessageBodyPermissions.None shows a plain-text input with no toolbar.

[Flags]
public enum MessageBodyPermissions
{
None = 0,
Links = 1, Bold = 2, Italics = 4, Underline = 8, Strikethrough = 16, Codeblocks = 32,
All = Links | Bold | Italics | Underline | Strikethrough | Codeblocks
}
public ChatSessionInfo BuildInfo() => new(
/* ... */
BodyPermissions: MessageBodyPermissions.Bold | MessageBodyPermissions.Italics | MessageBodyPermissions.Links,
/* ... */
);
FlagButtonWraps selection with
BoldB**bold**
ItalicsI*italic*
UnderlineUunderline markers
StrikethroughS~~strike~~
Codeblocks</>`code`
Links🔗prompts for URL + text → [text](url)

Each button wraps the current selection with the matching delimiter, or inserts a placeholder when nothing is selected. The Link button prompts for a URL and display text. The outgoing Body is markdown.

The bubble renderer honors the same subset for display — **bold**, *italic*, ~~strike~~, `code`, underline, and [text](url) (plus auto-linking of bare URLs). This is a self-contained minimal renderer built into the control; it is intentionally lighter than the full MarkdownView. If you need rich/extended markdown in bubbles, use a custom message template and render it yourself.

PropertyTypeDefaultDescription
IsInputBarVisiblebooltrueShow/hide the input bar — set false for read-only chats
PlaceholderTextstring"Type a message..."Input placeholder
SendButtonTextstring"Send"Send button label
SendButtonBackgroundColorColor/string#007AFFSend button background (MAUI)
SendButtonTextColorColor/stringWhiteSend button text (MAUI)
InputBarBackgroundColorColor/string#F5F5F5Input bar background (MAUI)
InputBarBorderColorColor/string#E0E0E0Input bar separator (MAUI)
AdjustForKeyboardbooltrueiOS keyboard padding — set false when hosting inside a FloatingPanel (MAUI)
<shiny:ChatView Provider="{Binding Provider}"
SessionId="{Binding SessionId}"
PlaceholderText="Message the team…"
SendButtonText="Go"
SendButtonBackgroundColor="#34C759"
InputBarBackgroundColor="#FAFAFA"
InputBarBorderColor="#CCCCCC" />

The input bar is enabled by CanSendMessages and disabled automatically while the connection is not Connected (see Typing & Connection). The send itself is optimistic — see Messages & Paging.

MemberDescription
EntryText (property)Get/set the input field text
SubmitEntry()Programmatically submit the current input

These are handy for custom input actions such as inserting a snippet or backfilling speech-to-text.

<!-- read-only feed: no input bar at all -->
<shiny:ChatView Provider="{Binding Provider}"
SessionId="{Binding SessionId}"
IsInputBarVisible="False" />

For a plain-text composer (input bar shown, no formatting buttons), return BodyPermissions: MessageBodyPermissions.None from your session’s Info.