diff --git a/HandyDoc.sln b/HandyDoc.sln
index ed28bf9..97ef6f1 100644
--- a/HandyDoc.sln
+++ b/HandyDoc.sln
@@ -1,9 +1,9 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 16
-VisualStudioVersion = 16.0.30804.86
+VisualStudioVersion = 16.0.31507.150
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandyDoc", "HandyDoc\HandyDoc.csproj", "{A1356F3B-6756-42B8-BBBF-F85F076CDE35}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandyDoc", "HandyDoc\HandyDoc.csproj", "{32A8B349-E9CD-4EBA-8B36-EDFA039E5B6F}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,15 +11,15 @@ Global
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{A1356F3B-6756-42B8-BBBF-F85F076CDE35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A1356F3B-6756-42B8-BBBF-F85F076CDE35}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A1356F3B-6756-42B8-BBBF-F85F076CDE35}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A1356F3B-6756-42B8-BBBF-F85F076CDE35}.Release|Any CPU.Build.0 = Release|Any CPU
+		{32A8B349-E9CD-4EBA-8B36-EDFA039E5B6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{32A8B349-E9CD-4EBA-8B36-EDFA039E5B6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{32A8B349-E9CD-4EBA-8B36-EDFA039E5B6F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{32A8B349-E9CD-4EBA-8B36-EDFA039E5B6F}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {65F24549-A006-465D-9677-59D2E794F9ED}
+		SolutionGuid = {43F6C957-9285-4644-8F52-C72552E55640}
 	EndGlobalSection
 EndGlobal
diff --git a/HandyDoc/App.xaml b/HandyDoc/App.xaml
index 3106087..72fba3a 100644
--- a/HandyDoc/App.xaml
+++ b/HandyDoc/App.xaml
@@ -1,9 +1,8 @@
 <Application x:Class="HandyDoc.App"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:hc="https://handyorg.github.io/handycontrol"
-             xmlns:ui="http://schemas.modernwpf.com/2019"
-             xmlns:toolkit="http://schemas.modernwpf.com/toolkit">
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:toolkit="http://schemas.modernwpf.com/toolkit"
+             xmlns:hc="https://handyorg.github.io/handycontrol" xmlns:ui="http://schemas.modernwpf.com/2019"
+             StartupUri="MainWindow.xaml">
     <Application.Resources>
         <ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>
@@ -14,9 +13,15 @@
                         <ResourceDictionary x:Key="HighContrast" ui:ThemeDictionary.Key="HighContrast" toolkit:ToolkitThemeDictionary.Key="HighContrast" />
                     </ui:ThemeResources.ThemeDictionaries>
                 </ui:ThemeResources>
-                <ui:XamlControlsResources />
-                <hc:Theme Name="HandyTheme"/>
+                <ui:XamlControlsResources/>
+                <hc:ThemeResources/>
+                <hc:Theme/>
             </ResourceDictionary.MergedDictionaries>
+            <Style TargetType="ui:AutoSuggestBox">
+                <Style.Resources>
+                    <Style TargetType="ListView" BasedOn="{StaticResource DefaultListViewStyle}"/>
+                </Style.Resources>
+            </Style>
             <Geometry x:Key="XamlGeometry">M2 4C0.9069372 4 0 4.9069372 0 6L0 17C0 18.093063 0.9069372 19 2 19L22 19C23.093063 19 24 18.093063 24 17L24 6C24 4.9069372 23.093063 4 22 4L2 4 z M 2 6L22 6L22 17L2 17L2 6 z M 3.0253906 9L4.2949219 11.478516L3 14L4.2617188 14L4.9980469 12.251953L5.7382812 14L7 14L5.703125 11.478516L6.9707031 9L5.7246094 9L4.9960938 10.716797L4.2714844 9L3.0253906 9 z M 8.9121094 9L7.5664062 14L8.6191406 14L8.8769531 13L10.246094 13L10.505859 14L11.566406 14L10.214844 9L8.9121094 9 z M 12 9L12 13.976562L13 13.976562L13 11L14.117188 13.976562L14.876953 13.976562L16 11L16 13.976562L16.998047 13.976562L17 13.976562L17 9L15.542969 9L14.501953 12.599609L13.457031 9L12 9 z M 18 9L18 14L21 14L21 13L19 13L19 9L18 9 z M 9.5605469 10.353516L9.9863281 12L9.1347656 12L9.5605469 10.353516 z</Geometry>
             <Geometry x:Key="PaletteGeometry">M12 2C6.241 2 1.6193906 6.8668906 2.0253906 12.712891C2.3923906 18.001891 7.0056406 22 12.306641 22L13 22C14.105 22 15 21.105 15 20L15 17C15 15.895 15.895 15 17 15L20 15C21.105 15 22 14.105 22 13L22 12.306641C22 7.0056406 18.002844 2.3923906 12.714844 2.0253906C12.474844 2.0083906 12.236 2 12 2 z M 12 4C12.19 4 12.381219 4.0065313 12.574219 4.0195312C16.738219 4.3085313 20 7.9486406 20 12.306641L20 13L17 13C14.794 13 13 14.794 13 17L13 20L12.306641 20C7.9486406 20 4.3075312 16.737219 4.0195312 12.574219C3.8635312 10.324219 4.6194375 8.1839219 6.1484375 6.5449219C7.6794375 4.9039219 9.758 4 12 4 z M 12.5 5 A 1.5 1.5 0 0 0 11 6.5 A 1.5 1.5 0 0 0 12.5 8 A 1.5 1.5 0 0 0 14 6.5 A 1.5 1.5 0 0 0 12.5 5 z M 8.5 6 A 1.5 1.5 0 0 0 7 7.5 A 1.5 1.5 0 0 0 8.5 9 A 1.5 1.5 0 0 0 10 7.5 A 1.5 1.5 0 0 0 8.5 6 z M 16.5 7 A 1.5 1.5 0 0 0 15 8.5 A 1.5 1.5 0 0 0 16.5 10 A 1.5 1.5 0 0 0 18 8.5 A 1.5 1.5 0 0 0 16.5 7 z M 6.5 10 A 1.5 1.5 0 0 0 5 11.5 A 1.5 1.5 0 0 0 6.5 13 A 1.5 1.5 0 0 0 8 11.5 A 1.5 1.5 0 0 0 6.5 10 z M 10 14 A 2 2 0 0 0 8 16 A 2 2 0 0 0 10 18 A 2 2 0 0 0 12 16 A 2 2 0 0 0 10 14 z</Geometry>
             <Geometry x:Key="InterActivityGeometry">M3 3C1.895 3 1 3.895 1 5L1 17C1 18.105 1.895 19 3 19L8 19L8 21L16 21L16 19L21 19C22.105 19 23 18.105 23 17L23 5C23 3.895 22.105 3 21 3L3 3 z M 3 5L21 5L21 17L3 17L3 5 z M 5 7L5 10L11 10L11 7L5 7 z M 13 7L13 10L19 10L19 7L13 7 z M 5 12L5 15L11 15L11 12L5 12 z M 13 12L13 15L19 15L19 12L13 12 z</Geometry>
diff --git a/HandyDoc/App.xaml.cs b/HandyDoc/App.xaml.cs
index 4c2e6f3..f5664aa 100644
--- a/HandyDoc/App.xaml.cs
+++ b/HandyDoc/App.xaml.cs
@@ -1,34 +1,14 @@
-using HandyControl.Controls;
-using HandyControl.Data;
-using HandyControl.Themes;
-using HandyControl.Tools;
-using ModernWpf;
+using HandyControl.Themes;
 using System.Windows;
 
 namespace HandyDoc
 {
     public partial class App : Application
     {
-        public App()
+        internal void UpdateTheme(ApplicationTheme theme)
         {
-            GlobalDataHelper<AppConfig>.Init();
-        }
-
-        protected override void OnStartup(StartupEventArgs e)
-        {
-            base.OnStartup(e);
-            var boot = new Bootstrapper();
-            boot.Run();
-            UpdateSkin(GlobalDataHelper<AppConfig>.Config.Skin);
-        }
-
-        internal void UpdateSkin(SkinType skin)
-        {
-            SharedResourceDictionary.SharedDictionaries.Clear();
-            ResourceHelper.GetTheme("HandyTheme", Resources).Skin = skin;
-
-            ThemeManager.Current.ApplicationTheme = skin == SkinType.Dark ? ApplicationTheme.Dark : ApplicationTheme.Light;
-            Current.MainWindow?.OnApplyTemplate();
+            ThemeManager.Current.ApplicationTheme = theme;
+            ModernWpf.ThemeManager.Current.ApplicationTheme = theme == ApplicationTheme.Light ? ModernWpf.ApplicationTheme.Light : ModernWpf.ApplicationTheme.Dark;
         }
     }
 }
diff --git a/HandyDoc/AppConfig.cs b/HandyDoc/AppConfig.cs
deleted file mode 100644
index daa83c1..0000000
--- a/HandyDoc/AppConfig.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using HandyControl.Controls;
-using HandyControl.Data;
-
-namespace HandyDoc
-{
-    public class AppConfig : GlobalDataHelper<AppConfig>
-    {
-        public string Lang { get; set; } = "English";
-        public SkinType Skin { get; set; } = SkinType.Default;
-    }
-}
diff --git a/HandyDoc/Bootstrapper.cs b/HandyDoc/Bootstrapper.cs
deleted file mode 100644
index 79c246f..0000000
--- a/HandyDoc/Bootstrapper.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using HandyDoc.Views;
-using Prism.DryIoc;
-using Prism.Ioc;
-using Prism.Regions;
-using System.Windows;
-
-namespace HandyDoc
-{
-    public class Bootstrapper : PrismBootstrapper
-    {
-        protected override void InitializeShell(DependencyObject shell)
-        {
-            base.InitializeShell(shell);
-            Container.Resolve<IRegionManager>().RequestNavigate("ContentRegion", "Markdown");
-        }
-
-        protected override DependencyObject CreateShell()
-        {
-            return Container.Resolve<MainWindow>();
-        }
-
-        protected override void RegisterTypes(IContainerRegistry containerRegistry)
-        {
-            containerRegistry.RegisterForNavigation<Markdown>();
-            containerRegistry.RegisterForNavigation<Settings>();
-        }
-    }
-}
diff --git a/HandyDoc/HandyDoc.csproj b/HandyDoc/HandyDoc.csproj
index 93bdfc7..8bf9e29 100644
--- a/HandyDoc/HandyDoc.csproj
+++ b/HandyDoc/HandyDoc.csproj
@@ -1,19 +1,18 @@
-<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
+<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <OutputType>WinExe</OutputType>
 	  <TargetFramework>net5.0-windows10.0.18362</TargetFramework>
-	<UseWPF>true</UseWPF>
+    <UseWPF>true</UseWPF>
     <AssemblyName>HandyDoc</AssemblyName>
     <RootNamespace>HandyDoc</RootNamespace>
-    <Version>1.0.0.0</Version>
+    <Version>2.0.0.0</Version>
     <Configurations>Debug;Release</Configurations>
-    <Copyright>Copyright © Mahdi 2018-2021</Copyright>
-    <FileVersion>1.0.0.0</FileVersion>
-    <AssemblyVersion>1.0.0.0</AssemblyVersion>
-	<SatelliteResourceLanguages>en;fa</SatelliteResourceLanguages>
-	<LangVersion>latest</LangVersion>
-	<ApplicationIcon>icon.ico</ApplicationIcon>
-	<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
+    <Copyright>Copyright © Mahdi Hosseini 2021</Copyright>
+    <FileVersion>2.0.0.0</FileVersion>
+    <AssemblyVersion>2.0.0.0</AssemblyVersion>
+    <LangVersion>latest</LangVersion>
+    <ApplicationIcon>icon.ico</ApplicationIcon>
+	<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
 	<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -26,19 +25,14 @@
     <None Remove="icon.ico" />
   </ItemGroup>
   <ItemGroup>
-	  <PackageReference Include="HandyControls" Version="3.0.0" />
-	  <PackageReference Include="ModernWpf.Toolkit.UI.Controls.Markdown" Version="0.1.0" />
-	  <PackageReference Include="ModernWpfUis" Version="1.0.0" />
-	  <PackageReference Include="Prism.DryIoc" Version="8.0.0.1909" />
+    <PackageReference Include="HandyControls" Version="3.3.7" />
+    <PackageReference Include="ModernWpfUis" Version="1.2.0" />
+    <PackageReference Include="ModernWpf.Toolkit.UI.Controls.Markdown" Version="0.1.0" />
   </ItemGroup>
   <ItemGroup>
-    <Page Include="Properties\DesignTimeResources.xaml" Condition="'$(DesignTime)'=='true' OR ('$(SolutionPath)'!='' AND Exists('$(SolutionPath)') AND '$(BuildingInsideVisualStudio)'!='true' AND '$(BuildingInsideExpressionBlend)'!='true')">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-      <ContainsDesignTimeResources>true</ContainsDesignTimeResources>
-    </Page>
+    <Folder Include="Resources\" />
   </ItemGroup>
   <ItemGroup>
     <Resource Include="icon.ico" />
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/HandyDoc/MainWindow.xaml b/HandyDoc/MainWindow.xaml
new file mode 100644
index 0000000..fab75d4
--- /dev/null
+++ b/HandyDoc/MainWindow.xaml
@@ -0,0 +1,53 @@
+<hc:GlowWindow x:Class="HandyDoc.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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:hc="https://handyorg.github.io/handycontrol"
+        xmlns:ui="http://schemas.modernwpf.com/2019" xmlns:controls="http://schemas.modernwpf.com/toolkit/controls"
+        mc:Ignorable="d" Loaded="Window_Loaded"
+        Title="HandyDoc v2.0" ActiveGlowColor="{DynamicResource PrimaryColor}"
+        WindowStartupLocation="CenterScreen"
+        ShowTitle="True"
+        Height="450" 
+        Width="800">
+    <hc:GlowWindow.NonClientAreaContent>
+        <Grid>
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition/>
+                <ColumnDefinition/>
+            </Grid.ColumnDefinitions>
+            <Button HorizontalAlignment="Right" Grid.Column="1" Click="ButtonConfig_OnClick" Name="ButtonConfig" Style="{StaticResource ButtonIcon}" Foreground="{DynamicResource PrimaryTextBrush}" hc:IconElement.Geometry="{StaticResource ConfigGeometry}"/>
+            <Popup AllowsTransparency="True" Grid.Column="1" PlacementTarget="{Binding ElementName=ButtonConfig}" HorizontalOffset="-35" Name="PopupConfig" VerticalOffset="6" StaysOpen="False">
+                <Border Background="{DynamicResource SecondaryRegionBrush}" CornerRadius="4" Margin="16" Effect="{StaticResource EffectShadow2}">
+                    <StackPanel Margin="10" Button.Click="ButtonSkins_OnClick" HorizontalAlignment="Center">
+                        <Button Tag="{x:Static hc:ApplicationTheme.Light}" Style="{StaticResource ButtonCustom}">
+                            <Border Background="White" Width="32" Height="21" CornerRadius="2" BorderThickness="1" BorderBrush="{DynamicResource BorderBrush}"/>
+                        </Button>
+                        <Button Margin="0,10" Tag="{x:Static hc:ApplicationTheme.Dark}" Style="{StaticResource ButtonCustom}">
+                            <Border Background="Black" Width="32" Height="21" CornerRadius="2" BorderThickness="1" BorderBrush="{DynamicResource BorderBrush}"/>
+                        </Button>
+                    </StackPanel>
+                </Border>
+            </Popup>
+        </Grid>
+    </hc:GlowWindow.NonClientAreaContent>
+    <hc:TransitioningContentControl TransitionMode="Fade">
+        <ui:NavigationViewNonVirtualizing Name="navView" SelectionChanged="navView_SelectionChanged" IsBackButtonVisible="Collapsed" IsSettingsVisible="False" PaneDisplayMode="Left" >
+            <ui:NavigationViewNonVirtualizing.AutoSuggestBox>
+                <ui:AutoSuggestBox x:Name="autoBox" QueryIcon="Find" QuerySubmitted="controlsSearchBox_QuerySubmitted" TextChanged="controlsSearchBox_TextChanged" PlaceholderText="Search..."/>
+            </ui:NavigationViewNonVirtualizing.AutoSuggestBox>
+            <Grid>
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="auto"/>
+                    <RowDefinition/>
+                </Grid.RowDefinitions>
+                <ComboBox Name="cmbLang" ui:ControlHelper.PlaceholderText="Default Language is English" SelectionChanged="ComboBox_SelectionChanged" Margin="10" MinWidth="200" Style="{StaticResource DefaultComboBoxStyle}">
+                    <ComboBoxItem Content="English"/>
+                    <ComboBoxItem Content="Chinese"/>
+                </ComboBox>
+                <controls:MarkdownTextBlock Grid.Row="1" Name="mdText"/>
+            </Grid>
+        </ui:NavigationViewNonVirtualizing>
+    </hc:TransitioningContentControl>
+</hc:GlowWindow>
diff --git a/HandyDoc/MainWindow.xaml.cs b/HandyDoc/MainWindow.xaml.cs
new file mode 100644
index 0000000..f82d079
--- /dev/null
+++ b/HandyDoc/MainWindow.xaml.cs
@@ -0,0 +1,313 @@
+using HandyControl.Themes;
+using HandyControl.Tools;
+using ModernWpf.Controls;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media;
+
+namespace HandyDoc
+{
+    public partial class MainWindow
+    {
+        private List<NavigationViewItem> _controlPages = new List<NavigationViewItem>();
+        public MainWindow()
+        {
+            InitializeComponent();
+            DataContext = this;
+        }
+
+        #region Change Theme
+        private void ButtonConfig_OnClick(object sender, RoutedEventArgs e) => PopupConfig.IsOpen = true;
+
+        private void ButtonSkins_OnClick(object sender, RoutedEventArgs e)
+        {
+            if (e.OriginalSource is Button button)
+            {
+                PopupConfig.IsOpen = false;
+                if (button.Tag is ApplicationTheme tag)
+                {
+                    ((App)Application.Current).UpdateTheme(tag);
+                }
+            }
+        }
+
+        #endregion
+
+        private void controlsSearchBox_QuerySubmitted(ModernWpf.Controls.AutoSuggestBox sender, ModernWpf.Controls.AutoSuggestBoxQuerySubmittedEventArgs args)
+        {
+            if (args.ChosenSuggestion != null && args.ChosenSuggestion is string)
+            {
+                var item = _controlPages.FirstOrDefault(i => i.Content.ToString().Equals(args.QueryText, StringComparison.OrdinalIgnoreCase));
+                navView.SelectedItem = item;
+                navView.UpdateLayout();
+            }
+            else if (!string.IsNullOrEmpty(args.QueryText))
+            {
+                var item = _controlPages.FirstOrDefault(i => i.Content.ToString().Equals(args.QueryText, StringComparison.OrdinalIgnoreCase));
+                if (item != null)
+                {
+                    navView.SelectedItem = item;
+                    navView.UpdateLayout();
+                }
+            }
+        }
+
+        private void controlsSearchBox_TextChanged(ModernWpf.Controls.AutoSuggestBox sender, ModernWpf.Controls.AutoSuggestBoxTextChangedEventArgs args)
+        {
+            var suggestions = new List<string>();
+
+            if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
+            {
+                var querySplit = sender.Text.Split(' ');
+                var matchingItems = _controlPages.Where(
+                    item =>
+                    {
+                        bool flag = true;
+                        foreach (string queryToken in querySplit)
+                        {
+                            if (item.Content.ToString().IndexOf(queryToken, StringComparison.CurrentCultureIgnoreCase) < 0)
+                            {
+                                flag = false;
+                            }
+
+                        }
+                        return flag;
+                    });
+                foreach (var item in matchingItems)
+                {
+                    suggestions.Add(item.Content.ToString());
+                }
+                if (suggestions.Count > 0)
+                {
+                    for (int i = 0; i < suggestions.Count; i++)
+                    {
+                        autoBox.ItemsSource = suggestions;
+                    }
+                }
+                else
+                {
+                    autoBox.ItemsSource = new string[] { "No results found" };
+                }
+            }
+        }
+        public void GetItemsForSearch()
+        {
+            _controlPages?.Clear();
+            foreach (var o in navView.MenuItems)
+            {
+                if (o is NavigationViewItem item)
+                {
+                    _controlPages.Add(item);
+                    if (item.MenuItems != null)
+                    {
+                        foreach (var itemMenuItem in item.MenuItems)
+                        {
+                            if (itemMenuItem is NavigationViewItem item2)
+                            {
+                                _controlPages.Add(item2);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        private async void navView_SelectionChanged(ModernWpf.Controls.NavigationView sender, ModernWpf.Controls.NavigationViewSelectionChangedEventArgs args)
+        {
+            var selectedItem = (NavigationViewItem)args.SelectedItem;
+            if (selectedItem != null)
+            {
+                mdText.Text = await ReadAndFixMarkdown(selectedItem.Tag.ToString());
+                mdText.Tag = selectedItem.Tag.ToString();
+                cmbLang.SelectedIndex = -1;
+            }
+        }
+        private void LoadDocs(string lang)
+        {
+            navView.MenuItems.Add(new NavigationViewItemHeader() { Content = "Quick Start" });
+            navView.MenuItems.Add(new NavigationViewItem() { Content = "Quick Start", Tag = @$"{lang}\handycontrol\quick_start", Icon = new SymbolIcon(Symbol.Home) });
+            navView.MenuItems.Add(new NavigationViewItem() { Content = "Intellisense", Tag = @$"{lang}\handycontrol\intellisense", Icon = new SymbolIcon(Symbol.AllApps) });
+
+            navView.MenuItems.Add(new NavigationViewItem() { Content = "Breaking Changes", Tag = @$"{lang}\handycontrol\breaking_changes", Icon = new SymbolIcon(Symbol.Character) });
+            navView.MenuItems.Add(new NavigationViewItem() { Content = "Language", Tag = @$"{lang}\handycontrol\langs", Icon = new SymbolIcon(Symbol.Globe) });
+
+            var expression = new NavigationViewItem() { Content = "Expression", Tag = @$"{lang}\handycontrol\expression", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("XamlGeometry") } };
+            var media = new NavigationViewItem() { Content = "Media", Tag = @$"{lang}\handycontrol\media", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("ToolsGeometry") } };
+
+            string pMediaPath = @$"{lang}\handycontrol\media";
+            IEnumerable<string> mediaPath = Directory.EnumerateDirectories(pMediaPath);
+
+            string pExpressionPath = @$"{lang}\handycontrol\expression";
+            IEnumerable<string> expressionPath = expressionPath = Directory.EnumerateDirectories(pExpressionPath);
+
+
+            foreach (var item in mediaPath)
+            {
+                var info = new DirectoryInfo(item);
+                media.MenuItems.Add(new NavigationViewItem()
+                { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
+            }
+            navView.MenuItems.Add(media);
+
+            foreach (var item in expressionPath)
+            {
+                var info = new DirectoryInfo(item);
+                expression.MenuItems.Add(new NavigationViewItem()
+                { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
+            }
+            navView.MenuItems.Add(expression);
+
+            navView.MenuItems.Add(new NavigationViewItem() { Content = "Theme", Tag = @$"{lang}\handycontrol\theme", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("PaletteGeometry") } });
+
+            navView.MenuItems.Add(new NavigationViewItem() { Content = "Thanks", Tag = @$"{lang}\handycontrol\tnx", Icon = new SymbolIcon(Symbol.Like) });
+
+            var basicXaml = new NavigationViewItem() { Content = "Basic Xaml", Tag = @$"{lang}\handycontrol\basic_xaml", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("XamlGeometry") } };
+
+            var nativeControls = new NavigationViewItem() { Content = "Styles", Tag = @$"{lang}\handycontrol\native_controls", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("PaletteGeometry") } };
+            var extendControls = new NavigationViewItem() { Content = "Custom Controls", Tag = @$"{lang}\handycontrol\extend_controls", Icon = new SymbolIcon(Symbol.AllApps) };
+            var persianToolkit = new NavigationViewItem() { Content = "PersianToolkit", Tag = @$"{lang}\handycontrol\persianToolkit", Icon = new SymbolIcon(Symbol.Home) };
+
+
+            var attach = new NavigationViewItem() { Content = "Attached Property", Tag = @$"{lang}\handycontrol\attach", Icon = new SymbolIcon(Symbol.Attach) };
+            var data = new NavigationViewItem() { Content = "Data", Tag = @$"{lang}\handycontrol\data", Icon = new SymbolIcon(Symbol.Admin) };
+            var interactivity = new NavigationViewItem() { Content = "Interactivity", Tag = @$"{lang}\handycontrol\interactivity", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("InterActivityGeometry") } };
+            var tools = new NavigationViewItem() { Content = "Tools", Tag = @$"{lang}\handycontrol\tools", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("ToolsGeometry") } };
+
+            var basicXamlPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\basic_xaml");
+            var attachPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\attach");
+            var nativeControlsPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\native_controls");
+            var extendControlsPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\extend_controls");
+
+            string pToolPath = @$"{lang}\handycontrol\persianToolkit";
+            IEnumerable<string> persianToolkitPath = Directory.EnumerateDirectories(pToolPath);
+            
+            var dataPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\data");
+
+            string interPath = @$"{lang}\handycontrol\interactivity";
+            IEnumerable<string> interactivityPath = Directory.EnumerateDirectories(@interPath);
+            
+            var toolsPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\tools");
+
+            foreach (var item in basicXamlPath)
+            {
+                var info = new DirectoryInfo(item);
+                basicXaml.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
+            }
+            foreach (var item in attachPath)
+            {
+                var info = new DirectoryInfo(item);
+                attach.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
+            }
+            foreach (var item in nativeControlsPath)
+            {
+                var info = new DirectoryInfo(item);
+                nativeControls.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
+            }
+            foreach (var item in extendControlsPath)
+            {
+                var info = new DirectoryInfo(item);
+                extendControls.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
+            }
+
+            foreach (var item in persianToolkitPath)
+            {
+                var info = new DirectoryInfo(item);
+                persianToolkit.MenuItems.Add(new NavigationViewItem()
+                { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
+            }
+
+            foreach (var item in dataPath)
+            {
+                var info = new DirectoryInfo(item);
+                data.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
+            }
+
+            foreach (var item in interactivityPath)
+            {
+                var info = new DirectoryInfo(item);
+                interactivity.MenuItems.Add(new NavigationViewItem()
+                { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
+            }
+
+            foreach (var item in toolsPath)
+            {
+                var info = new DirectoryInfo(item);
+                tools.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
+            }
+
+            navView.MenuItems.Add(basicXaml);
+            navView.MenuItems.Add(new NavigationViewItemHeader() { Content = "Controls and Styles" });
+            navView.MenuItems.Add(nativeControls);
+            navView.MenuItems.Add(extendControls);
+            navView.MenuItems.Add(persianToolkit);
+            navView.MenuItems.Add(tools);
+
+            navView.MenuItems.Add(new NavigationViewItemHeader() { Content = "Interactivity" });
+
+            navView.MenuItems.Add(interactivity);
+            navView.MenuItems.Add(attach);
+            navView.MenuItems.Add(data);
+
+            try
+            {
+                
+            }
+            catch (IndexOutOfRangeException)
+            {
+            }
+            catch (ArgumentOutOfRangeException) { }
+        }
+        public string FirstCharToUpper(string input)
+        {
+            return input.First().ToString().ToUpper() + input.Substring(1);
+        }
+        private async void Window_Loaded(object sender, RoutedEventArgs e)
+        {
+            LoadDocs(@"Docs\English");
+            GetItemsForSearch();
+
+            mdText.Text = await ReadAndFixMarkdown(@"Docs\English\handycontrol");
+            mdText.Tag = @"Docs\English\handycontrol";
+        }
+
+        private async Task<string> ReadAndFixMarkdown(string path)
+        {
+            if (Directory.Exists(path))
+            {
+                var init = await File.ReadAllTextAsync(path + @"\index.md");
+                var fixCode = init.Replace("{% code %}", "```").Replace("{% endcode %}", "```").
+                    Replace("{% code lang:xml %}", "```").Replace("{% endcode %}", "```").
+                    Replace("{% code lang:csharp %}", "```").Replace("{% endcode %}", "```").
+                    Replace("{% code lang:cs %}", "```").Replace("{% endcode %}", "```")
+                    .Replace("{% note warning %}", "> **_NOTE:_**  ").Replace("{% endnote %}", "")
+                    .Replace("{% note info %}", "> **_NOTE:_**  ").Replace("{% endnote %}", "")
+                    .Replace("{% note info no-icon %}", "> **_NOTE:_**  ").Replace("{% endnote %}", "")
+                    .Replace("{% note warning no-icon %}", "> **_NOTE:_**  ").Replace("{% endnote %}", "");
+                return fixCode;
+            }
+            return null;
+        }
+
+        private async void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            if (!string.IsNullOrEmpty(mdText.Text))
+            {
+                string location = string.Empty;
+                if (cmbLang.SelectedIndex == 0)
+                {
+                    location = mdText.Tag.ToString().Replace(@"Docs\Chinese", @"Docs\English");
+                }
+                else
+                {
+                    location = mdText.Tag.ToString().Replace(@"Docs\English", @"Docs\Chinese");
+                }
+
+                mdText.Text = await ReadAndFixMarkdown(location);
+            }
+        }
+    }
+}
diff --git a/HandyDoc/Properties/AssemblyInfo.cs b/HandyDoc/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..9ef4842
--- /dev/null
+++ b/HandyDoc/Properties/AssemblyInfo.cs
@@ -0,0 +1,3 @@
+using System.Windows;
+
+[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]
diff --git a/HandyDoc/Properties/DesignTimeResources.xaml b/HandyDoc/Properties/DesignTimeResources.xaml
index 813803d..2e644b9 100644
--- a/HandyDoc/Properties/DesignTimeResources.xaml
+++ b/HandyDoc/Properties/DesignTimeResources.xaml
@@ -1,5 +1,6 @@
-<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+                    xmlns:hc="https://handyorg.github.io/handycontrol">
     <ResourceDictionary.MergedDictionaries>
-        <ResourceDictionary Source="/HandyControl;Component/Themes/Theme.xaml"/>
+        <hc:IntellisenseResources Source="/HandyControl;Component/DesignTime/DesignTimeResources.xaml" />
     </ResourceDictionary.MergedDictionaries>
-</ResourceDictionary>
\ No newline at end of file
+</ResourceDictionary>
diff --git a/HandyDoc/ViewModels/MainWindowViewModel.cs b/HandyDoc/ViewModels/MainWindowViewModel.cs
deleted file mode 100644
index a05ab4b..0000000
--- a/HandyDoc/ViewModels/MainWindowViewModel.cs
+++ /dev/null
@@ -1,221 +0,0 @@
-using HandyControl.Controls;
-using HandyControl.Tools;
-using ModernWpf.Controls;
-using Prism.Commands;
-using Prism.Events;
-using Prism.Mvvm;
-using Prism.Regions;
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.IO;
-using System.Linq;
-using System.Windows.Controls;
-using System.Windows.Media;
-using HandyDoc.Views;
-
-namespace HandyDoc.ViewModels
-{
-    public class MainWindowViewModel : BindableBase
-    {
-        internal static MainWindowViewModel Instance;
-        private readonly IEventAggregator _ea;
-        private readonly IRegionManager _region;
-
-        private ObservableCollection<object> _navigationView = new ObservableCollection<object>();
-        public ObservableCollection<object> NavigationView
-        {
-            get => _navigationView;
-            set => SetProperty(ref _navigationView, value);
-        }
-
-        private DelegateCommand<SelectionChangedEventArgs> _languageSwitchCommand;
-        public DelegateCommand<SelectionChangedEventArgs> LanguageSwitchCommand =>
-            _languageSwitchCommand ??= new DelegateCommand<SelectionChangedEventArgs>(LanguageSwitch);
-
-        private DelegateCommand<NavigationViewSelectionChangedEventArgs> _switchCommand;
-        public DelegateCommand<NavigationViewSelectionChangedEventArgs> SwitchCommand =>
-            _switchCommand ??= new DelegateCommand<NavigationViewSelectionChangedEventArgs>(OnSwitch);
-
-        private string _currentLanguage;
-
-        public MainWindowViewModel(IEventAggregator ea, IRegionManager regionManager)
-        {
-            Instance = this;
-            _ea = ea;
-            _region = regionManager;
-            _currentLanguage = GlobalDataHelper<AppConfig>.Config.Lang;
-            LoadDocs(@"Docs\" + _currentLanguage);
-        }
-        private void LanguageSwitch(SelectionChangedEventArgs e)
-        {
-            if (e.AddedItems.Count == 0)
-            {
-                return;
-            }
-
-            if (e.AddedItems[0] is ComboBoxItem item)
-            {
-                GlobalDataHelper<AppConfig>.Config.Lang = item.Content.ToString();
-                GlobalDataHelper<AppConfig>.Save();
-                _currentLanguage = item.Content.ToString();
-                LoadDocs(@"Docs\" + item.Content.ToString());
-                MainWindow.Instance.GetItemsForSearch();
-            }
-        }
-        private void LoadDocs(string lang)
-        {
-            try
-            {
-                NavigationView?.Clear();
-
-                NavigationView?.Add(new NavigationViewItemHeader() { Content = "Quick Start" });
-                NavigationView?.Add(new NavigationViewItem() { Content = "Quick Start", Tag = @$"{lang}\handycontrol\quick_start", Icon = new SymbolIcon(Symbol.Home) });
-                if (_currentLanguage.Contains("English"))
-                {
-                    NavigationView?.Add(new NavigationViewItem() { Content = "Intellisense", Tag = @$"{lang}\handycontrol\intellisense", Icon = new SymbolIcon(Symbol.AllApps) });
-
-                }
-                NavigationView?.Add(new NavigationViewItem() { Content = "Breaking Changes", Tag = @$"{lang}\handycontrol\breaking_changes", Icon = new SymbolIcon(Symbol.Character) });
-                NavigationView?.Add(new NavigationViewItem() { Content = "Language", Tag = @$"{lang}\handycontrol\langs", Icon = new SymbolIcon(Symbol.Globe) });
-                if (_currentLanguage.Contains("English"))
-                {
-                    NavigationView?.Add(new NavigationViewItem() { Content = "Theme", Tag = @$"{lang}\handycontrol\theme", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("PaletteGeometry") } });
-                }
-                NavigationView?.Add(new NavigationViewItem() { Content = "Thanks", Tag = @$"{lang}\handycontrol\tnx", Icon = new SymbolIcon(Symbol.Like) });
-
-                var basicXaml = new NavigationViewItem() { Content = "Basic Xaml", Tag = @$"{lang}\handycontrol\basic_xaml", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("XamlGeometry") } };
-
-                var nativeControls = new NavigationViewItem() { Content = "Styles", Tag = @$"{lang}\handycontrol\native_controls", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("PaletteGeometry") } };
-                var extendControls = new NavigationViewItem() { Content = "Custom Controls", Tag = @$"{lang}\handycontrol\extend_controls", Icon = new SymbolIcon(Symbol.AllApps) };
-                var persianToolkit = new NavigationViewItem() { Content = "PersianToolkit", Tag = @$"{lang}\handycontrol\persianToolkit", Icon = new SymbolIcon(Symbol.Home) };
-
-
-                var attach = new NavigationViewItem() { Content = "Attached Property", Tag = @$"{lang}\handycontrol\attach", Icon = new SymbolIcon(Symbol.Attach) };
-                var data = new NavigationViewItem() { Content = "Data", Tag = @$"{lang}\handycontrol\data", Icon = new SymbolIcon(Symbol.Admin) };
-                var interactivity = new NavigationViewItem() { Content = "Interactivity", Tag = @$"{lang}\handycontrol\interactivity", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("InterActivityGeometry") } };
-                var tools = new NavigationViewItem() { Content = "Tools", Tag = @$"{lang}\handycontrol\tools", Icon = new PathIcon() { Data = ResourceHelper.GetResource<Geometry>("ToolsGeometry") } };
-
-                var basicXamlPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\basic_xaml");
-                var attachPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\attach");
-                var nativeControlsPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\native_controls");
-                var extendControlsPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\extend_controls");
-
-                string pToolPath = @$"{lang}\handycontrol\persianToolkit";
-                IEnumerable<string> persianToolkitPath = null;
-                if (Directory.Exists(pToolPath))
-                {
-                    persianToolkitPath = Directory.EnumerateDirectories(pToolPath);
-                }
-
-                var dataPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\data");
-
-                string interPath = @$"{lang}\handycontrol\interactivity";
-                IEnumerable<string> interactivityPath = null;
-                if (Directory.Exists(interPath))
-                {
-                    interactivityPath = Directory.EnumerateDirectories(@interPath);
-                }
-
-                var toolsPath = Directory.EnumerateDirectories(@$"{lang}\handycontrol\tools");
-
-                foreach (var item in basicXamlPath)
-                {
-                    var info = new DirectoryInfo(item);
-                    basicXaml.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
-                }
-                foreach (var item in attachPath)
-                {
-                    var info = new DirectoryInfo(item);
-                    attach.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
-                }
-                foreach (var item in nativeControlsPath)
-                {
-                    var info = new DirectoryInfo(item);
-                    nativeControls.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
-                }
-                foreach (var item in extendControlsPath)
-                {
-                    var info = new DirectoryInfo(item);
-                    extendControls.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
-                }
-
-                if (persianToolkitPath != null)
-                {
-                    foreach (var item in persianToolkitPath)
-                    {
-                        var info = new DirectoryInfo(item);
-                        persianToolkit.MenuItems.Add(new NavigationViewItem()
-                        { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
-                    }
-                }
-
-                foreach (var item in dataPath)
-                {
-                    var info = new DirectoryInfo(item);
-                    data.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
-                }
-
-                if (interactivityPath != null)
-                {
-                    foreach (var item in interactivityPath)
-                    {
-                        var info = new DirectoryInfo(item);
-                        interactivity.MenuItems.Add(new NavigationViewItem()
-                        { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
-                    }
-                }
-
-                foreach (var item in toolsPath)
-                {
-                    var info = new DirectoryInfo(item);
-                    tools.MenuItems.Add(new NavigationViewItem() { Content = FirstCharToUpper(info.Name), Tag = info.FullName });
-                }
-
-                NavigationView?.Add(basicXaml);
-                NavigationView?.Add(new NavigationViewItemHeader() { Content = "Controls and Styles" });
-                NavigationView?.Add(nativeControls);
-                NavigationView?.Add(extendControls);
-                if (persianToolkitPath != null)
-                {
-                    NavigationView?.Add(persianToolkit);
-                }
-                NavigationView?.Add(tools);
-
-                NavigationView?.Add(new NavigationViewItemHeader() { Content = "Interactivity" });
-
-                if (persianToolkitPath != null)
-                {
-                    NavigationView?.Add(interactivity);
-                }
-                NavigationView?.Add(attach);
-                NavigationView?.Add(data);
-            }
-            catch (IndexOutOfRangeException)
-            {
-            }
-        }
-        public string FirstCharToUpper(string input)
-        {
-            return input.First().ToString().ToUpper() + input.Substring(1);
-        }
-
-        private void OnSwitch(NavigationViewSelectionChangedEventArgs e)
-        {
-            if (e.SelectedItem is NavigationViewItem item)
-            {
-                if (item.Tag is not null)
-                {
-                    if (item.Tag is not "Settings")
-                    {
-                        _ea.GetEvent<PubSubEvent<string>>().Publish(item.Tag.ToString());
-                    }
-                    else
-                    {
-                        _region.RequestNavigate("ContentRegion", "Settings");
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/HandyDoc/ViewModels/MarkdownViewModel.cs b/HandyDoc/ViewModels/MarkdownViewModel.cs
deleted file mode 100644
index 6f9165e..0000000
--- a/HandyDoc/ViewModels/MarkdownViewModel.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using HandyControl.Controls;
-using Prism.Events;
-using Prism.Mvvm;
-using Prism.Regions;
-using System.IO;
-using System.Threading.Tasks;
-
-namespace HandyDoc.ViewModels
-{
-    public class MarkdownViewModel : BindableBase, INavigationAware
-    {
-        private readonly IEventAggregator _ea;
-        private string _message;
-        public string Message
-        {
-            get => _message;
-            set => SetProperty(ref _message, value);
-        }
-        public MarkdownViewModel(IEventAggregator ea)
-        {
-            _ea = ea;
-            _ea.GetEvent<PubSubEvent<string>>().Subscribe(MessageReceived);
-        }
-
-
-        private async void MessageReceived(string message)
-        {
-            Message = await ReadAndFixMarkdown(message);
-        }
-
-        private async Task<string> ReadAndFixMarkdown(string path)
-        {
-            if (Directory.Exists(path))
-            {
-                var init = await File.ReadAllTextAsync(path + @"\index.md");
-                var fixCode = init.Replace("{% code %}", "```").Replace("{% endcode %}", "```").
-                    Replace("{% code lang:xml %}", "```").Replace("{% endcode %}", "```").
-                    Replace("{% code lang:csharp %}", "```").Replace("{% endcode %}", "```")
-                    .Replace("{% note warning %}", "> **_NOTE:_**  ").Replace("{% endnote %}", "")
-                    .Replace("{% note info %}", "> **_NOTE:_**  ").Replace("{% endnote %}", "")
-                    .Replace("{% note info no-icon %}", "> **_NOTE:_**  ").Replace("{% endnote %}", "")
-                    .Replace("{% note warning no-icon %}", "> **_NOTE:_**  ").Replace("{% endnote %}", "");
-                return fixCode;
-            }
-            return null;
-        }
-
-        public async void OnNavigatedTo(NavigationContext navigationContext)
-        {
-            Message = await ReadAndFixMarkdown(@$"Docs\{GlobalDataHelper<AppConfig>.Config.Lang}\handycontrol");
-        }
-
-        public bool IsNavigationTarget(NavigationContext navigationContext)
-        {
-            return true;
-        }
-
-        public void OnNavigatedFrom(NavigationContext navigationContext)
-        {
-        }
-    }
-}
diff --git a/HandyDoc/ViewModels/SettingsViewModel.cs b/HandyDoc/ViewModels/SettingsViewModel.cs
deleted file mode 100644
index 2f028f2..0000000
--- a/HandyDoc/ViewModels/SettingsViewModel.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using HandyControl.Controls;
-using Prism.Commands;
-using Prism.Mvvm;
-using System;
-using System.Diagnostics;
-using System.Reflection;
-
-namespace HandyDoc.ViewModels
-{
-    public class SettingsViewModel : BindableBase
-    {
-        private DelegateCommand _checkUpdateCommand;
-        public DelegateCommand CheckUpdateCommand =>
-            _checkUpdateCommand ??= new DelegateCommand(OnCheckUpdate);
-
-        private string _version;
-
-        public string Version
-        {
-            get => _version;
-            set => SetProperty(ref _version, value);
-        }
-        public SettingsViewModel()
-        {
-            Version = Assembly.GetExecutingAssembly().GetName().Version?.ToString();
-        }
-
-        private void OnCheckUpdate()
-        {
-            try
-            {
-                var ver =
-                    UpdateHelper.CheckForUpdateGithubRelease("HandyOrg", "HandyDoc");
-
-                if (ver.IsExistNewVersion)
-                {
-                    Growl.AskGlobal("we found a new Version, do you want to download?", b =>
-                    {
-                        if (!b)
-                        {
-                            return true;
-                        }
-
-                        Process.Start(ver.Asset[0].browser_download_url);
-                        return true;
-                    });
-                }
-                else
-                {
-                    Growl.InfoGlobal("you are using Latest Version.");
-                }
-            }
-            catch (Exception ex)
-            {
-                Growl.ErrorGlobal(ex.Message);
-            }
-        }
-    }
-}
diff --git a/HandyDoc/Views/MainWindow.xaml b/HandyDoc/Views/MainWindow.xaml
deleted file mode 100644
index 7689cce..0000000
--- a/HandyDoc/Views/MainWindow.xaml
+++ /dev/null
@@ -1,70 +0,0 @@
-<hc:Window x:Class="HandyDoc.Views.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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-        xmlns:hc="https://handyorg.github.io/handycontrol"
-        xmlns:prism="http://prismlibrary.com/"
-        xmlns:ui="http://schemas.modernwpf.com/2019"
-        prism:ViewModelLocator.AutoWireViewModel="True"
-        mc:Ignorable="d"
-        Title="HandyDoc"
-        WindowState="Maximized"
-        WindowStartupLocation="CenterScreen"
-        ShowTitle="True"
-        Height="450" 
-        Width="800">
-    <hc:Window.NonClientAreaContent>
-        <Grid>
-            <Grid.ColumnDefinitions>
-                <ColumnDefinition/>
-                <ColumnDefinition/>
-            </Grid.ColumnDefinitions>
-            <Button HorizontalAlignment="Right" Grid.Column="1" Click="ButtonConfig_OnClick" Name="ButtonConfig" Style="{StaticResource ButtonIcon}" Foreground="{DynamicResource PrimaryTextBrush}" hc:IconElement.Geometry="{StaticResource ConfigGeometry}"/>
-            <Popup AllowsTransparency="True" Grid.Column="1" PlacementTarget="{Binding ElementName=ButtonConfig}" HorizontalOffset="-25" Name="PopupConfig" VerticalOffset="6" StaysOpen="False">
-                <Border Background="{DynamicResource SecondaryRegionBrush}" CornerRadius="4" Margin="16" Effect="{StaticResource EffectShadow2}">
-                    <StackPanel Button.Click="ButtonSkins_OnClick"  Margin="10,10,10,10">
-                        <Button Tag="{x:Static hc:SkinType.Default}" Style="{StaticResource ButtonCustom}">
-                            <Border Background="White" Width="32" Height="21" CornerRadius="2" BorderThickness="1" BorderBrush="{DynamicResource BorderBrush}"/>
-                        </Button>
-                        <Button Tag="{x:Static hc:SkinType.Dark}" Style="{StaticResource ButtonCustom}" Margin="0,10,0,0">
-                            <Border Background="Black" Width="32" Height="21" CornerRadius="2" BorderThickness="1" BorderBrush="{DynamicResource BorderBrush}"/>
-                        </Button>
-                    </StackPanel>
-                </Border>
-            </Popup>
-        </Grid>
-    </hc:Window.NonClientAreaContent>
-    <hc:TransitioningContentControl TransitionMode="Fade">
-        <ui:NavigationViewNonVirtualizing Name="navView" MenuItemsSource="{Binding NavigationView}" IsBackButtonVisible="Collapsed" PaneDisplayMode="Left" >
-            <ui:NavigationViewNonVirtualizing.PaneCustomContent>
-                <ComboBox Name="cmbLang" Margin="10,10,15,10" HorizontalAlignment="Stretch" ui:ControlHelper.PlaceholderText="Documention Language">
-                    <ComboBox.Resources>
-                        <ResourceDictionary>
-                            <ResourceDictionary.MergedDictionaries>
-                                <ui:ThemeResources />
-                                <ui:XamlControlsResources />
-                            </ResourceDictionary.MergedDictionaries>
-                        </ResourceDictionary>
-                    </ComboBox.Resources>
-                    <ComboBoxItem Content="English"/>
-                    <ComboBoxItem Content="Chinese"/>
-                    <hc:Interaction.Triggers>
-                        <hc:EventTrigger EventName="SelectionChanged">
-                            <hc:EventToCommand Command="{Binding LanguageSwitchCommand}" PassEventArgsToCommand="True"/>
-                        </hc:EventTrigger>
-                    </hc:Interaction.Triggers>
-                </ComboBox>
-            </ui:NavigationViewNonVirtualizing.PaneCustomContent>
-            <ui:NavigationViewNonVirtualizing.AutoSuggestBox>
-                <ui:AutoSuggestBox x:Name="controlsSearchBox" QueryIcon="Find" QuerySubmitted="Control_QuerySubmitted" TextChanged="Control_TextChanged" PlaceholderText="Search..."/>
-            </ui:NavigationViewNonVirtualizing.AutoSuggestBox>
-            <ContentControl prism:RegionManager.RegionName="ContentRegion" />
-            <hc:Interaction.Triggers>
-                <hc:EventTrigger EventName="SelectionChanged">
-                    <hc:EventToCommand Command="{Binding SwitchCommand}" PassEventArgsToCommand="True"/>
-                </hc:EventTrigger>
-            </hc:Interaction.Triggers>
-        </ui:NavigationViewNonVirtualizing>
-   </hc:TransitioningContentControl>
-</hc:Window>
\ No newline at end of file
diff --git a/HandyDoc/Views/MainWindow.xaml.cs b/HandyDoc/Views/MainWindow.xaml.cs
deleted file mode 100644
index d1afb27..0000000
--- a/HandyDoc/Views/MainWindow.xaml.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-using HandyControl.Controls;
-using HandyControl.Data;
-using HandyDoc.ViewModels;
-using ModernWpf.Controls;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Windows;
-using System.Windows.Controls;
-
-namespace HandyDoc.Views
-{
-    public partial class MainWindow
-    {
-        internal static MainWindow Instance;
-        private readonly List<NavigationViewItem> _controlPages = new List<NavigationViewItem>();
-
-        public MainWindow()
-        {
-            InitializeComponent();
-            Instance = this;
-            cmbLang.SelectedIndex = GlobalDataHelper<AppConfig>.Config.Lang.Contains("English") ? 0 : 1;
-
-            GetItemsForSearch();
-        }
-
-        #region Change Skin
-        private void ButtonConfig_OnClick(object sender, RoutedEventArgs e)
-        {
-            PopupConfig.IsOpen = true;
-        }
-
-        private void ButtonSkins_OnClick(object sender, RoutedEventArgs e)
-        {
-            if (e.OriginalSource is Button button && button.Tag is SkinType tag)
-            {
-                PopupConfig.IsOpen = false;
-                GlobalDataHelper<AppConfig>.Config.Skin = tag;
-                GlobalDataHelper<AppConfig>.Save();
-                ((App)Application.Current).UpdateSkin(tag);
-            }
-        }
-        #endregion
-
-        private void Control_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
-        {
-            var suggestions = new List<string>();
-
-            if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
-            {
-                var querySplit = sender.Text.Split(' ');
-                var matchingItems = _controlPages.Where(
-                    item =>
-                    {
-                        bool flag = true;
-                        foreach (string queryToken in querySplit)
-                        {
-                            if (item.Content.ToString().IndexOf(queryToken, StringComparison.CurrentCultureIgnoreCase) < 0)
-                            {
-                                flag = false;
-                            }
-
-                        }
-                        return flag;
-                    });
-                foreach (var item in matchingItems)
-                {
-                    suggestions.Add(item.Content.ToString());
-                }
-                if (suggestions.Count > 0)
-                {
-                    for (int i = 0; i < suggestions.Count; i++)
-                    {
-                        controlsSearchBox.ItemsSource = suggestions;
-                    }
-                }
-                else
-                {
-                    controlsSearchBox.ItemsSource = new string[] { "No results found" };
-                }
-            }
-        }
-        private void Control_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
-        {
-            if (args.ChosenSuggestion != null && args.ChosenSuggestion is string)
-            {
-                var item = _controlPages.FirstOrDefault(i => i.Content.ToString().Equals(args.QueryText, StringComparison.OrdinalIgnoreCase));
-                navView.SelectedItem = item;
-                navView.UpdateLayout();
-            }
-            else if (!string.IsNullOrEmpty(args.QueryText))
-            {
-                var item = _controlPages.FirstOrDefault(i => i.Content.ToString().Equals(args.QueryText, StringComparison.OrdinalIgnoreCase));
-                if (item != null)
-                {
-                    navView.SelectedItem = item;
-                    navView.UpdateLayout();
-
-                }
-            }
-        }
-
-        public void GetItemsForSearch()
-        {
-            _controlPages?.Clear();
-            foreach (var o in MainWindowViewModel.Instance.NavigationView)
-            {
-                if (o is NavigationViewItem item)
-                {
-                    _controlPages.Add(item);
-                    if (item.MenuItems != null)
-                    {
-                        foreach (var itemMenuItem in item.MenuItems)
-                        {
-                            if (itemMenuItem is NavigationViewItem item2)
-                            {
-                                _controlPages.Add(item2);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/HandyDoc/Views/Markdown.xaml b/HandyDoc/Views/Markdown.xaml
deleted file mode 100644
index e29716b..0000000
--- a/HandyDoc/Views/Markdown.xaml
+++ /dev/null
@@ -1,8 +0,0 @@
-<UserControl x:Class="HandyDoc.Views.Markdown"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:prism="http://prismlibrary.com/"
-             xmlns:controls="http://schemas.modernwpf.com/toolkit/controls"
-             prism:ViewModelLocator.AutoWireViewModel="True">
-    <controls:MarkdownTextBlock Text="{Binding Message}"/>
-</UserControl>
diff --git a/HandyDoc/Views/Markdown.xaml.cs b/HandyDoc/Views/Markdown.xaml.cs
deleted file mode 100644
index 2878a10..0000000
--- a/HandyDoc/Views/Markdown.xaml.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System.Windows.Controls;
-
-namespace HandyDoc.Views
-{
-    /// <summary>
-    /// Interaction logic for Markdown
-    /// </summary>
-    public partial class Markdown : UserControl
-    {
-        public Markdown()
-        {
-            InitializeComponent();
-        }
-    }
-}
diff --git a/HandyDoc/Views/Settings.xaml b/HandyDoc/Views/Settings.xaml
deleted file mode 100644
index 9d28e2d..0000000
--- a/HandyDoc/Views/Settings.xaml
+++ /dev/null
@@ -1,47 +0,0 @@
-<UserControl x:Class="HandyDoc.Views.Settings"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:prism="http://prismlibrary.com/"
-             xmlns:hc="https://handyorg.github.io/handycontrol"
-             prism:ViewModelLocator.AutoWireViewModel="True">
-    <hc:TransitioningContentControl TransitionMode="Fade">
-        <hc:ScrollViewer>
-            <StackPanel Margin="10,10,50,20">
-                <TextBlock HorizontalAlignment="Left" Text="HandyDoc" Style="{StaticResource TextBlockTitleBold}" />
-                <TextBlock Margin="0,5" Width="200"
-                           Text="Offline Documentions for HandyControl."
-                           TextWrapping="Wrap" HorizontalAlignment="Left" Style="{StaticResource TextBlockSubTitle}"
-                           FontSize="14" />
-
-                <TextBlock Margin="0,5,0,0" HorizontalAlignment="Left" Style="{StaticResource TextBlockSubTitle}"
-                           FontSize="14">
-                    <Hyperlink CommandParameter="https://github.com/HandyOrg/HandyDoc"
-                               Command="hc:ControlCommands.OpenLink" TextDecorations="{x:Null}">
-                        <TextBlock Text="Github Repository" />
-                    </Hyperlink>
-                </TextBlock>
-                <TextBlock Margin="0,10" HorizontalAlignment="Left" Style="{StaticResource TextBlockSubTitle}"
-                           FontSize="14">
-                    <Hyperlink CommandParameter="https://github.com/HandyOrg/HandyDoc/issues"
-                               Command="hc:ControlCommands.OpenLink" TextDecorations="{x:Null}">
-                        <TextBlock Text="Report a bug" />
-                    </Hyperlink>
-                </TextBlock>
-                <TextBlock HorizontalAlignment="Left" Style="{StaticResource TextBlockSubTitle}" FontSize="14">
-                    <Hyperlink CommandParameter="https://github.com/HandyOrg/HandyDoc/issues"
-                               Command="hc:ControlCommands.OpenLink" TextDecorations="{x:Null}">
-                        <TextBlock Text="Request a feature" />
-                    </Hyperlink>
-                </TextBlock>
-
-                <TextBlock Margin="0,10" HorizontalAlignment="Left" Text="Update"
-                           Style="{StaticResource TextBlockTitleBold}" />
-
-                <TextBlock Text="{Binding Version, StringFormat= 'Current Version \{0\}'}" HorizontalAlignment="Left"
-                           Style="{StaticResource TextBlockSubTitle}" FontSize="14" />
-                <Button HorizontalAlignment="Left" Margin="0,10" Content="Check For Update" FontSize="14"
-                        Style="{DynamicResource ButtonPrimary}" Command="{Binding CheckUpdateCommand}" />
-            </StackPanel>
-        </hc:ScrollViewer>
-    </hc:TransitioningContentControl>
-</UserControl>
diff --git a/HandyDoc/Views/Settings.xaml.cs b/HandyDoc/Views/Settings.xaml.cs
deleted file mode 100644
index c6f2ed8..0000000
--- a/HandyDoc/Views/Settings.xaml.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System.Windows.Controls;
-
-namespace HandyDoc.Views
-{
-    /// <summary>
-    /// Interaction logic for Settings
-    /// </summary>
-    public partial class Settings : UserControl
-    {
-        public Settings()
-        {
-            InitializeComponent();
-        }
-    }
-}
diff --git a/README.md b/README.md
index c97f814..0049db0 100644
--- a/README.md
+++ b/README.md
@@ -2,5 +2,5 @@
  Offline Documentions for HandyControl
  
  you can download app from GitHub [Release](https://github.com/HandyOrg/HandyDoc/releases)
-![HandyDoc](https://user-images.githubusercontent.com/9213496/104024161-ec58e780-51d7-11eb-9d6a-2c6e39c5142d.png)
-![HandyDoc](https://user-images.githubusercontent.com/9213496/104024171-efec6e80-51d7-11eb-8c5e-30d2b4b269e3.png)
\ No newline at end of file
+![HandyDoc](https://user-images.githubusercontent.com/9213496/126480354-befe845f-0591-43c9-9176-331f62357975.png)
+![HandyDoc](https://user-images.githubusercontent.com/9213496/126480357-4d9540c9-48d6-42c3-ad7b-91c1468740a5.png)