Table of Contents
- Effect Showcase
- Preparation
- Brief Explanation + Source Code
- Conclusion (Video & Source Repository)
1. Effect Showcase
Enjoy the effect:

2. Preparation
Create a WPF project, for example, the site owner created a WPF project named Login5 using .NET 7.

Find an image as decoration, placed on the left side of the login form:

Add NuGet package MaterialDesignThemes:
<PackageReference Include="MaterialDesignThemes" Version="4.6.0-ci176" />
3. Brief Explanation + Source Code
The interface is relatively simple, with not much code, so we’ll just paste the code directly.
MainWindow.xaml
The overall layout and style of the interface are all in this file:
<Window
x:Class="Login5.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="800"
Height="450"
ResizeMode="NoResize"
WindowStartupLocation="CenterScreen"
WindowStyle="None"
mc:Ignorable="d">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.Red.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid MouseDown="Border_MouseDown">
<Grid.Background>
<LinearGradientBrush StartPoint="0.1,0" EndPoint="0.9,1">
<GradientStop Offset="1" Color="#FFE63070" />
<GradientStop Offset="0" Color="#FFFE8704" />
</LinearGradientBrush>
</Grid.Background>
<Border
Height="390"
VerticalAlignment="Top"
Background="#100E17"
CornerRadius="0 0 180 0" />
<StackPanel Orientation="Horizontal">
<StackPanel Width="350">
<Image
Width="300"
Height="300"
Margin="30"
VerticalAlignment="Top"
Source="pack://application:,,,/Login5;component/Images/ICON4801.png"
Stretch="Fill" />
</StackPanel>
<StackPanel Width="350">
<StackPanel Margin="20,40">
<TextBlock
Margin="20"
FontFamily="Great Vibes"
FontSize="38"
Foreground="White"
Text="User Login"
TextAlignment="Center" />
<StackPanel Margin="10" Orientation="Horizontal">
<materialDesign:PackIcon
Width="25"
Height="25"
Foreground="White"
Kind="User" />
<TextBox
x:Name="txtUsername"
Width="250"
Margin="10,0"
materialDesign:HintAssist.Hint="Enter Username / Email"
BorderBrush="White"
CaretBrush="#FFD94448"
Foreground="White"
SelectionBrush="#FFD94448" />
</StackPanel>
<StackPanel Margin="10" Orientation="Horizontal">
<materialDesign:PackIcon
Width="25"
Height="25"
Foreground="White"
Kind="Lock" />
<PasswordBox
x:Name="txtPassword"
Width="250"
Margin="10,0"
materialDesign:HintAssist.Hint="********"
BorderBrush="White"
CaretBrush="#FFD94448"
Foreground="White"
SelectionBrush="#FFD94448" />
</StackPanel>
<StackPanel Margin="10" HorizontalAlignment="Center">
<Button
x:Name="btnLogin"
Width="100"
Height="40"
materialDesign:ButtonAssist.CornerRadius="10"
Background="#D94448"
BorderBrush="#D94448"
BorderThickness="2"
Content="Login"
Foreground="White"
Style="{StaticResource MaterialDesignRaisedButton}"
ToolTip="Login" />
</StackPanel>
</StackPanel>
</StackPanel>
<StackPanel Width="100">
<Button
x:Name="btnExit"
Margin="10,20"
Background="{x:Null}"
Click="btnExit_Click"
Style="{StaticResource MaterialDesignFloatingActionButton}"
ToolTip="Close">
<materialDesign:PackIcon
Width="30"
Height="30"
Foreground="White"
Kind="Close" />
</Button>
</StackPanel>
</StackPanel>
</Grid>
</Window>
MainWindow.xaml.cs
Window drag and close button events:
using System.Windows;
using System.Windows.Input;
namespace Login5;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Border_MouseDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();
}
private void btnExit_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
4. Conclusion (Video & Source Repository)
If interested, you can watch the original author’s video (recommended). Below are the links to the video and source repository:
References:
- YouTube video author: C# Code Academy
- YouTube video: Multiple User Login Form | C# WPF
- Reference code: Multi-login-CSharp-WPF
- Code for this article: Login5