How to create an onboard screen for my live .NET MAUI application?

Sowndarrajan Vijayaragavan 470 Reputation points
2025-04-29T09:27:26.9833333+00:00

User's image

I need to create a tutorial for the first time users. Basically, it should explain all the features within the application. there should be 3 buttons Next,Previous,Skip. How to create (Green highlighted popup) this in my application. Until they complete the tutorial process. Rest of the button in the page should not work.

Developer technologies | .NET | .NET MAUI
{count} votes

2 answers

Sort by: Most helpful
  1. Samuel Lima 0 Reputation points
    2025-05-15T15:09:12.3+00:00

    You can develop it using a Grid or a Frame to create a popup overlay; implement INotifyPropertyChanged to update the UI when CurrentPageIndex changes; and ensure the changes are being reflected correctly

    Something like this:

    using System.Windows.Input;
    using System.ComponentModel;
    using System.Runtime.CompilerServices;
    public class OnboardingViewModel : INotifyPropertyChanged
    {
        private int _currentPageIndex;
        public int CurrentPageIndex
        {
            get => _currentPageIndex;
            set
            {
                _currentPageIndex = value;
                OnPropertyChanged();
            }
        }
        private bool _isTutorialVisible = true;
        public bool IsTutorialVisible
        {
            get => _isTutorialVisible;
            set
            {
                _isTutorialVisible = value;
                OnPropertyChanged();
            }
        }
        public ICommand PreviousCommand { get; }
        public ICommand NextCommand { get; }
        public ICommand SkipCommand { get; }
        public OnboardingViewModel()
        {
            PreviousCommand = new Command(GoToPreviousPage);
            NextCommand = new Command(GoToNextPage);
            SkipCommand = new Command(SkipTutorial);
        }
        private void GoToPreviousPage()
        {
            if (CurrentPageIndex > 0)
            {
                CurrentPageIndex--;
            }
        }
        private void GoToNextPage()
        {
            if (CurrentPageIndex < 4)
            {
                CurrentPageIndex++;
            }
        }
        private void SkipTutorial()
        {
            IsTutorialVisible = false;
        }
        public event PropertyChangedEventHandler PropertyChanged;
        protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    
    <Grid>
        <Frame x:Name="TutorialPopup" BackgroundColor="Green" CornerRadius="10" Padding="10" IsVisible="{Binding IsTutorialVisible}">
            <StackLayout>
                <Label Text="Label Text" TextColor="White" />
                <StackLayout Orientation="Horizontal" HorizontalOptions="Center" VerticalOptions="End">
                    <Button Text="Previous" Command="{Binding PreviousCommand}" />
                    <Button Text="Next" Command="{Binding NextCommand}" />
                    <Button Text="Skip" Command="{Binding SkipCommand}" />
                </StackLayout>
            </StackLayout>
        </Frame>
    </Grid>
    

    Please let me know if this works for you

    Best regards!


  2. Harry Vo (WICLOUD CORPORATION) 1,085 Reputation points Microsoft External Staff
    2025-08-28T10:09:06.1433333+00:00

    Hi @Sowndarrajan Vijayaragavan , thank you for reaching out on Microsoft Q&A!

    There are two ways you can try to implement this function:

    Full-Screen Onboarding Pages:

    You can create a dedicated onboarding flow using a full-screen page with multiple slides. This is ideal for introducing your app’s features before the user reaches the main interface. You can achieve this by using CarouselView to display the slides and IndicatorView to show progress indicators. Include navigation options such as Next, Previous, and Skip buttons for better user control.

    In-App Coach Marks (Overlay):

    You can use an overlay that highlights specific UI elements while blocking interaction with the rest of the page. The easiest way to implement this is by using the .NET MAUI Community Toolkit Popup, which allows you to create a modal overlay that intercepts all touches. Design the popup with a semi-transparent background and highlight the relevant feature area, adding navigation buttons like Next, Previous, and Done.

    I hope this helps you get things back on track quickly! If my suggestions can solve your issue, feel free to interact with the system accordingly!

    Thank you!


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.