How Dependency Injection Containers Work in C#?

Dependency Injection (DI) containers, such as Unity or DryIoc, help manage the creation and lifetime of object dependencies in C#. They facilitate the Inversion of Control (IoC) principle, allowing you to focus on writing clean, maintainable code without worrying about the complexities of instantiating dependencies manually. How DI Containers Work? Registration:  You define which concrete classes should be used to fulfill specific interface contracts. This allows the DI container to know what to instantiate when a class requests a particular dependency. Resolution:  When an instance of a class is requested, the DI container looks at the registered services, resolves the dependencies, and creates the object with the required dependencies injected. Lifetime Management:  The container manages the lifecycle of the dependencies. You can specify whether instances should be singleton (one instance for the entire application), transient (a new instance each time), or scoped (one ...

Mastering Modern UI: A Step-by-Step Guide to Creating Metro UI in WPF


To create metro ui you first have to install "Mahapps.metro" from NuGet.To install it right click on project and click on manage NuGet and type Mahapps.metro you will get this package you have to install from here.Now you are ready to create metro ui.Now open you Mainwindow.xaml and add one namespace like bellow
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" 
and replace Window to Controls:MetroWindow
Now your Mainwindow.xaml become
<Controls:MetroWindow x:Class="ProjectName.MainWindow"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
          Title="MainWindow"
          Height="600"
          Width="800">

  <!-- your content -->

</Controls:MetroWindow>

Now you have to modify Mainwindow.xaml.cs file in wpf application before it was inherited from Window.Now to make it metro you have to replace Window to MetroWindow like

  public partial class MainWindow :MetroWindow 
 { 
         public MainWindow() 
         { 
               InitializeComponent(); 
         }
}

Now add some Button and run the application it will display window with black
background.To apply metro default style you have to add some resources.
All of MahApp.Metro’s resources are contained within separate resource dictionaries.
In order for most of the controls to adopt the MahApps.Metro theme,you will need to
add the ResourceDictionaries to your App.xaml

<Application x:Class="WpfApplication.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>

<!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
 <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/
   Controls.xaml"/>

<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/
  Fonts.xaml"/>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/
  Colors.xaml"/>
      <!-- Accent and AppTheme setting -->
   <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
   </ResourceDictionary.MergedDictionaries>
   </ResourceDictionary>
  </Application.Resources>
</Application>

Now if you run the application you will get metro window with default style.
Watch video for more detail




Comments

Popular posts from this blog

Filter DataGrid and ListView in wpf using ICollectionView

Pagination of DataGrid in WPF using MVVM

How to Create TabControl using Prism Region