diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..cf069299
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+
+*.csproj.user
+*.pubxml
+
+.vs/
+
+src/Snap.Hutao/Snap.Hutao/bin/
+src/Snap.Hutao/Snap.Hutao/obj/
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao.sln b/src/Snap.Hutao/Snap.Hutao.sln
new file mode 100644
index 00000000..440f58d0
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao.sln
@@ -0,0 +1,43 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.1.32407.343
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Snap.Hutao", "Snap.Hutao\Snap.Hutao.csproj", "{AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|arm64 = Debug|arm64
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|arm64 = Release|arm64
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Debug|arm64.ActiveCfg = Debug|arm64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Debug|arm64.Build.0 = Debug|arm64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Debug|arm64.Deploy.0 = Debug|arm64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Debug|x64.ActiveCfg = Debug|x64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Debug|x64.Build.0 = Debug|x64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Debug|x64.Deploy.0 = Debug|x64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Debug|x86.ActiveCfg = Debug|x86
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Debug|x86.Build.0 = Debug|x86
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Debug|x86.Deploy.0 = Debug|x86
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|arm64.ActiveCfg = Release|arm64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|arm64.Build.0 = Release|arm64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|arm64.Deploy.0 = Release|arm64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|x64.ActiveCfg = Release|x64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|x64.Build.0 = Release|x64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|x64.Deploy.0 = Release|x64
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|x86.ActiveCfg = Release|x86
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|x86.Build.0 = Release|x86
+ {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|x86.Deploy.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E4449B1C-0E6A-4D19-955E-1CA491656ABA}
+ EndGlobalSection
+EndGlobal
diff --git a/src/Snap.Hutao/Snap.Hutao/App.xaml b/src/Snap.Hutao/Snap.Hutao/App.xaml
new file mode 100644
index 00000000..b6e511a2
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/App.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/App.xaml.cs b/src/Snap.Hutao/Snap.Hutao/App.xaml.cs
new file mode 100644
index 00000000..881e0605
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/App.xaml.cs
@@ -0,0 +1,49 @@
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Controls.Primitives;
+using Microsoft.UI.Xaml.Data;
+using Microsoft.UI.Xaml.Input;
+using Microsoft.UI.Xaml.Media;
+using Microsoft.UI.Xaml.Navigation;
+using Microsoft.UI.Xaml.Shapes;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace Snap.Hutao;
+///
+/// Provides application-specific behavior to supplement the default Application class.
+///
+public partial class App : Application
+{
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ ///
+ /// Invoked when the application is launched normally by the end user. Other entry points
+ /// will be used such as when the application is launched to open a specific file.
+ ///
+ /// Details about the launch request and process.
+ protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
+ {
+ m_window = new MainWindow();
+ m_window.Activate();
+ }
+
+ private Window m_window;
+}
diff --git a/src/Snap.Hutao/Snap.Hutao/Assets/LockScreenLogo.scale-200.png b/src/Snap.Hutao/Snap.Hutao/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 00000000..7440f0d4
Binary files /dev/null and b/src/Snap.Hutao/Snap.Hutao/Assets/LockScreenLogo.scale-200.png differ
diff --git a/src/Snap.Hutao/Snap.Hutao/Assets/SplashScreen.scale-200.png b/src/Snap.Hutao/Snap.Hutao/Assets/SplashScreen.scale-200.png
new file mode 100644
index 00000000..32f486a8
Binary files /dev/null and b/src/Snap.Hutao/Snap.Hutao/Assets/SplashScreen.scale-200.png differ
diff --git a/src/Snap.Hutao/Snap.Hutao/Assets/Square150x150Logo.scale-200.png b/src/Snap.Hutao/Snap.Hutao/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 00000000..53ee3777
Binary files /dev/null and b/src/Snap.Hutao/Snap.Hutao/Assets/Square150x150Logo.scale-200.png differ
diff --git a/src/Snap.Hutao/Snap.Hutao/Assets/Square44x44Logo.scale-200.png b/src/Snap.Hutao/Snap.Hutao/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 00000000..f713bba6
Binary files /dev/null and b/src/Snap.Hutao/Snap.Hutao/Assets/Square44x44Logo.scale-200.png differ
diff --git a/src/Snap.Hutao/Snap.Hutao/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/Snap.Hutao/Snap.Hutao/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 00000000..dc9f5bea
Binary files /dev/null and b/src/Snap.Hutao/Snap.Hutao/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/src/Snap.Hutao/Snap.Hutao/Assets/StoreLogo.png b/src/Snap.Hutao/Snap.Hutao/Assets/StoreLogo.png
new file mode 100644
index 00000000..a4586f26
Binary files /dev/null and b/src/Snap.Hutao/Snap.Hutao/Assets/StoreLogo.png differ
diff --git a/src/Snap.Hutao/Snap.Hutao/Assets/Wide310x150Logo.scale-200.png b/src/Snap.Hutao/Snap.Hutao/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 00000000..8b4a5d0d
Binary files /dev/null and b/src/Snap.Hutao/Snap.Hutao/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/src/Snap.Hutao/Snap.Hutao/MainWindow.xaml b/src/Snap.Hutao/Snap.Hutao/MainWindow.xaml
new file mode 100644
index 00000000..1e2c3a05
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/MainWindow.xaml
@@ -0,0 +1,9 @@
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/MainWindow.xaml.cs b/src/Snap.Hutao/Snap.Hutao/MainWindow.xaml.cs
new file mode 100644
index 00000000..92d9cc93
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/MainWindow.xaml.cs
@@ -0,0 +1,17 @@
+using Microsoft.UI.Xaml;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace Snap.Hutao;
+///
+/// An empty window that can be used on its own or navigated to within a Frame.
+///
+public sealed partial class MainWindow : Window
+{
+ public MainWindow()
+ {
+ this.InitializeComponent();
+ ExtendsContentIntoTitleBar = true;
+ }
+}
diff --git a/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest b/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest
new file mode 100644
index 00000000..36f2829c
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+ Snap.Hutao
+ 16861
+ Assets\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json b/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json
new file mode 100644
index 00000000..14b37087
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json
@@ -0,0 +1,10 @@
+{
+ "profiles": {
+ "Snap.Hutao (Package)": {
+ "commandName": "MsixPackage"
+ },
+ "Snap.Hutao (Unpackaged)": {
+ "commandName": "Project"
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
new file mode 100644
index 00000000..637259c6
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
@@ -0,0 +1,37 @@
+
+
+ WinExe
+ net6.0-windows10.0.19041.0
+ 10.0.17763.0
+ Snap.Hutao
+ app.manifest
+ x86;x64;arm64
+ win10-x86;win10-x64;win10-arm64
+ win10-$(Platform).pubxml
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/app.manifest b/src/Snap.Hutao/Snap.Hutao/app.manifest
new file mode 100644
index 00000000..2c8bda9f
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/app.manifest
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+ true/PM
+ PerMonitorV2, PerMonitor
+
+
+