# SplashScreenManagerService | WPF Controls | DevExpress Documentation

The [SplashScreenManagerService](/WPF/DevExpress.Xpf.Core.SplashScreenManagerService) allows you to add the [SplashScreenManager](/WPF/DevExpress.Xpf.Core.SplashScreenManager) functionality to MVVM-compliant applications.

## Add Service

To use the [SplashScreenManagerService](/WPF/DevExpress.Xpf.Core.SplashScreenManagerService), add it to the view’s **Interaction.Behaviors** collection. You can use the Smart Tag as described in the [Quick Actions](/WPF/402198/whats-installed/smart-tags/suggested-actions#attach-mvvm-behaviors-and-services) or as shown in the code snippet below.

- XAML

<section id="tabpanel_BRbOLouRyA_tabid-xaml" role="tabpanel" data-tab="tabid-xaml">
<pre><code class="lang-xaml">&lt;UserControl x:Class=&quot;DXSampleSplashScreenService.View.MainView&quot; 
    ...
    xmlns:dx=&quot;http://schemas.devexpress.com/winfx/2008/xaml/core&quot; 
    xmlns:dxmvvm=&quot;http://schemas.devexpress.com/winfx/2008/xaml/mvvm&quot;&gt;
    &lt;dxmvvm:Interaction.Behaviors&gt;
        &lt;dx:SplashScreenManagerService/&gt;
    &lt;/dxmvvm:Interaction.Behaviors&gt;
    ...
&lt;/UserControl&gt;
</code></pre></section>

The service creates and shows splash windows in a separate thread.

## Specify Splash Screen View

Use the [PredefinedSplashScreenType](/WPF/DevExpress.Xpf.Core.SplashScreenManagerService.PredefinedSplashScreenType) property to specify which one of the three predefined splash screen styles to display.

The following predefined splash screen styles are available:

- **Themed**

    ![DevExpress themed splash screen fo WPF](/WPF/images/splash-screen-themed.png)
- **Fluent**

    ![DevExpress wait indicator fo WPF](/WPF/images/splash-screen-fluent.png)
- **WaitIndicator**

    ![DevExpress themed splash screen fo WPF](/WPF/images/wait-indicator118758.gif)

Tip

You can implement your own splash screen view based on a [SplashScreenWindow](/WPF/DevExpress.Xpf.Core.SplashScreenWindow). Refer to the [How to: Create a Custom Splash Screen](/WPF/401690/controls-and-libraries/windows-and-utility-controls/splash-screen-manager/how-to-create-a-custom-splash-screen) tutorial for details. In this scenario, set the [SplashScreenManagerService.SplashScreenType](/WPF/DevExpress.Xpf.Core.SplashScreenManagerService.SplashScreenType) property to the custom splash screen view type.

## Show Splash Screen From View Model

To show and hide the splash screen from your View Model, access the service and use the [SplashScreenManagerService.Show](/CoreLibraries/DevExpress.Mvvm.ISplashScreenManagerService.Show%28System.String-System.Int32%29) and [SplashScreenManagerService.Close](/CoreLibraries/DevExpress.Mvvm.ISplashScreenManagerService.Close) methods correspondingly.

Tip

A detailed description on how to obtain a service from a View Model (which is a POCO object or a ViewModelBase descendant) is available here: [Services in POCO objects](/WPF/17447/mvvm-framework/services/services-in-generated-view-models) and [Services in ViewModelBase descendants](/WPF/17446/mvvm-framework/services/services-in-viewmodelbase-descendants).

- C#
- VB.NET

<section id="tabpanel_BRbOLouRyA-1_tabid-csharp" role="tabpanel" data-tab="tabid-csharp">
<pre><code class="lang-csharp">[POCOViewModel]
public class MainViewModel {
    protected ISplashScreenManagerService SplashScreenManagerService { get { return this.GetService&lt;ISplashScreenManagerService&gt;();} }
    public void Display() {
        SplashScreenManagerService.Show();
        //...
        SplashScreenManagerService.Close();
    }
}
</code></pre></section>
<section id="tabpanel_BRbOLouRyA-1_tabid-vb" role="tabpanel" data-tab="tabid-vb" aria-hidden="true" hidden="hidden">
<pre><code class="lang-vb">&lt;POCOViewModel&gt; _
Public Class MainViewModel
    Protected ReadOnly Property SplashScreenManagerService() As ISplashScreenManagerService
        Get
            Return Me.GetService(Of ISplashScreenManagerService)()
        End Get
    End Property
    Public Sub Display()
        SplashScreenManagerService.Show()
        &#39;...
        SplashScreenManagerService.Close()
    End Sub
End Class
</code></pre></section>

## Edit Splash Screen Data

Access the [SplashScreenManagerService.ViewModel](/CoreLibraries/DevExpress.Mvvm.ISplashScreenManagerService.ViewModel) to specify splash screen data and content.

- C#
- VB.NET

<section id="tabpanel_BRbOLouRyA-2_tabid-csharp" role="tabpanel" data-tab="tabid-csharp">
<pre><code class="lang-csharp">public void Display() {
    SplashScreenManagerService.ViewModel = new DXSplashScreenViewModel();
    SplashScreenManagerService.ViewModel.Subtitle = &quot;Powered by DevExpress&quot;;
    SplashScreenManagerService.ViewModel.Logo = new Uri(&quot;../../Images/Logo.png&quot;, UriKind.Relative);
    SplashScreenManagerService.Show();
    //...
    SplashScreenManagerService.Close();
}
</code></pre></section>
<section id="tabpanel_BRbOLouRyA-2_tabid-vb" role="tabpanel" data-tab="tabid-vb" aria-hidden="true" hidden="hidden">
<pre><code class="lang-vb">Public Sub Display()
    SplashScreenManagerService.ViewModel = New DXSplashScreenViewModel()
    SplashScreenManagerService.ViewModel.Subtitle = &quot;Powered by DevExpress&quot;
    SplashScreenManagerService.ViewModel.Logo = New Uri(&quot;../../Images/Logo.png&quot;, UriKind.Relative)
    SplashScreenManagerService.Show()
    &#39;...
    SplashScreenManagerService.Close()
End Sub
</code></pre></section>

## Options

To display a splash screen on top of a UI element, specify this element as the [Owner](/WPF/DevExpress.Xpf.Core.SplashScreenManagerService.Owner) property value and set the [StartupLocation](/WPF/DevExpress.Xpf.Core.SplashScreenManagerService.StartupLocation) property to [CenterOwner](https://learn.microsoft.com/dotnet/api/system.windows.windowstartuplocation#system-windows-windowstartuplocation-centerowner). Set the [TrackOwnerPosition](/WPF/DevExpress.Xpf.Core.SplashScreenManagerService.TrackOwnerPosition) property to **true** to keep the splash screen above the owner when the user drags the owner.

Use the [InputBlock](/WPF/DevExpress.Xpf.Core.SplashScreenManagerService.InputBlock) property to specify the input restriction mode.

## Example

[View Example: How to use the SplashScreenManagerService](https://github.com/DevExpress-Examples/splashscreenmanagerservice)