The Syncfusion .NET MAUI Chat control (SfChat) delivers a contemporary conversational UI for building chatbot interfaces, customer support screens, and multi-user messaging experiences. It supports rich message types, real-time typing indicators, suggestions, load-more history, swiping, and deep styling customization.
When to Use This Skill
- Building a chat UI, chatbot interface, or messaging screen in .NET MAUI
- Displaying conversations between two or more users
- Sending/receiving text, images, cards, hyperlinks, or date/time picker messages
- Implementing typing indicators, message suggestions, or load-more history
- Customizing message appearance, shapes, delivery states, or themes
- Adding swipe actions, time-break grouping, or attachment buttons
- Localizing the chat UI or enabling accessibility features
Component Overview
SfChat is a powerful, customizable conversational control that:
- Shows incoming and outgoing messages in a chat layout
- Supports text, avatars, timestamps, and custom message designs
- Binds easily to data using ItemsSource and MVVM
- Allows UI customization with templates and styles
- Automatically aligns and groups user and other messages
- Includes a built-in text input with send functionality
- Supports interactions like sending and tapping messages
- Can display rich content like images or custom layouts
- Provides smooth scrolling and auto-scroll to new messages
- Offers full control over appearance (colors, fonts, bubbles)
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- NuGet installation (
Syncfusion.Maui.Chat) - Handler registration in
MauiProgram.cs - Basic
SfChatinitialization in XAML and C# - ViewModel setup with
MessagesandCurrentUser - Binding messages to the chat control
- Running the application
Messages
📄 Read: references/messages.md
TextMessage,DatePickerMessage,TimePickerMessage,CalendarMessageHyperlinkMessage,ImageMessage,CardMessage- Delivery states (
ShowDeliveryState,DeliveryStateenum, custom icons) - Pin message (
AllowPinning,PinnedMessages, events, template) - Message template and
ChatMessageTemplateSelector - Customizable incoming/outgoing views
- Message spacing, shape, timestamp format, avatar/author visibility
- Sending messages, keyboard, multiline input, hide input view
Data Binding
📄 Read: references/data-binding.md
- Binding
ObservableCollection<object>toMessages CurrentUserdifferentiation of sender/receiver- Custom data models with
IMessage/ITextMessage ItemsSourceConverterfor external model binding- Dynamically updating messages at runtime
Suggestions
📄 Read: references/suggestions.md
- Chat-level suggestions (
SfChat.Suggestions) - Message-level suggestions (
TextMessage.Suggestions) SuggestionItemSelectedevent and command- Customizing suggestion item templates
Typing Indicator
📄 Read: references/typing-indicator.md
- Enabling the typing indicator (
ShowTypingIndicator) - Setting author and message on
TypingIndicator - Customizing appearance
- Showing/hiding dynamically
Load More
📄 Read: references/load-more.md
- Enabling load more (
LoadMoreBehavior) LoadMoreevent andLoadMoreCommand- Loading older messages on scroll
IsLazyLoadingproperty- Disabling after all messages are loaded
Events & Commands
📄 Read: references/events.md
SendMessage/SendMessageCommandImageTapped/ImageTappedCommandCardTapped/CardCommandSuggestionItemSelectedMessagePinned/MessageUnpinnedLoadMore/LoadMoreCommand- Handling and cancelling event args
Styles & Appearance
📄 Read: references/styles.md
- Incoming and outgoing message styling
- Message input view styling
- Time-break and typing indicator styling
- Suggestion view styling
MessageShapeoptions- Theme support (Material 3, Fluent)
Accessibility & Localization
📄 Read: references/accessibility-localization.md
- WCAG 2.0 compliance
- Keyboard navigation and screen reader support
AutomationIdfor UI testing- Localization with
.resxresource files - Supported localizable strings
- RTL layout support
Scrolling
📄 Read: references/scrolling.md
- Programmatic scroll to a specific message (
ScrollToMessage) - Auto-scroll to bottom on new message (
CanAutoScrollToBottom) - Scroll to bottom floating button (
ShowScrollToBottomButton) - Customizing the scroll to bottom button (
ScrollToBottomButtonTemplate) Scrolledevent andChatScrolledEventArgs(IsBottomReached,IsTopReached,ScrollOffset)
Advanced Features
📄 Read: references/advanced-features.md
- Message swiping (left/right,
SwipeStarted,SwipeEnded, swipe templates) - Time-break grouping (custom time-break template)
- Attachment button (adding, customizing,
AttachmentButtonView) - Liquid glass effect (enabling, platform support, customization)
MessageSpacingconfiguration- Hiding the message input view (
ShowMessageInputView)