diff --git a/Setup/App.xaml.cs b/Setup/App.xaml.cs
index 4e2fa34..9b81dea 100644
--- a/Setup/App.xaml.cs
+++ b/Setup/App.xaml.cs
@@ -1,77 +1,77 @@
-using System.Windows;
-using System.Windows.Media;
-using Microsoft.Win32;
-
-namespace DeskCoreSetup;
-
-public partial class App : Application
-{
- protected override void OnStartup(StartupEventArgs e)
- {
- base.OnStartup(e);
- bool uninstall = e.Args.Any(a => a.Equals("--uninstall", StringComparison.OrdinalIgnoreCase));
- bool silent = e.Args.Any(a => a.Equals("/S", StringComparison.OrdinalIgnoreCase));
- bool launch = e.Args.Any(a => a.Equals("/launch", StringComparison.OrdinalIgnoreCase));
- var dirArg = e.Args.FirstOrDefault(a => a.StartsWith("/D=", StringComparison.OrdinalIgnoreCase))?.Substring(3);
-
- // Stille Installation/Deinstallation für Skripte: DeskCore-Setup.exe /S [/D=Ordner] bzw. --uninstall /S
- if (silent)
- {
- var progress = new Progress<(double, string)>(_ => { });
- try
- {
- if (uninstall) Installer.Uninstall(removeData: false, progress);
- else
- {
- var dir = dirArg ?? Installer.InstalledDir ?? Installer.DefaultDir;
- Installer.Install(dir, desktopLink: Installer.InstalledDir is null || Installer.DesktopLinkExists,
- autostart: Installer.AutostartEnabled, progress, installRuntime: true);
- // nach einem Update aus DeskCore heraus: gleich wieder starten
- if (launch) System.Diagnostics.Process.Start(System.IO.Path.Combine(dir, Installer.ExeName));
- }
- Shutdown(0);
- }
- catch (Exception ex)
- {
- // ohne Oberfläche: Fehler für Skripte nachvollziehbar ablegen
- try { System.IO.File.WriteAllText(System.IO.Path.Combine(System.IO.Path.GetTempPath(), "DeskCore-Setup.log"), $"[{DateTime.Now}] {ex}"); } catch { }
- Shutdown(1);
- }
- return;
- }
-
- ApplyTheme();
- new MainWindow(uninstall).Show();
- }
-
- /// Hell/Dunkel und Akzentfarbe wie in Windows eingestellt.
- private void ApplyTheme()
- {
- bool light = ReadDword(@"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", "AppsUseLightTheme") != 0;
- Resources.MergedDictionaries[0] = new ResourceDictionary
- {
- Source = new Uri($"pack://application:,,,/Themes/Colors.{(light ? "Light" : "Dark")}.xaml"),
- };
- int abgr = ReadDword(@"Software\Microsoft\Windows\DWM", "AccentColor") is var v and not -1 ? v : unchecked((int)0xFFD77800);
- var accent = Color.FromRgb((byte)abgr, (byte)(abgr >> 8), (byte)(abgr >> 16));
- var a = light ? Mix(accent, Colors.Black, 0.12) : Mix(accent, Colors.White, 0.45);
- Resources["AccentBrush"] = new SolidColorBrush(a);
- Resources["AccentHoverBrush"] = new SolidColorBrush(light ? Mix(a, Colors.White, 0.1) : Mix(a, Colors.Black, 0.1));
- Resources["OnAccentBrush"] = new SolidColorBrush(light ? Colors.White : Colors.Black);
- Resources["AccentSubtleBrush"] = new SolidColorBrush(Color.FromArgb(light ? (byte)0x22 : (byte)0x30, a.R, a.G, a.B));
- Resources["AccentSubtleStrokeBrush"] = new SolidColorBrush(Color.FromArgb(light ? (byte)0x55 : (byte)0x60, a.R, a.G, a.B));
- }
-
- private static int ReadDword(string key, string name)
- {
- try
- {
- using var k = Registry.CurrentUser.OpenSubKey(key);
- return k?.GetValue(name) is int i ? i : -1;
- }
- catch { return -1; }
- }
-
- private static Color Mix(Color c, Color with, double t) => Color.FromRgb(
- (byte)(c.R + (with.R - c.R) * t), (byte)(c.G + (with.G - c.G) * t), (byte)(c.B + (with.B - c.B) * t));
-}
+using System.Windows;
+using System.Windows.Media;
+using Microsoft.Win32;
+
+namespace DeskCoreSetup;
+
+public partial class App : Application
+{
+ protected override void OnStartup(StartupEventArgs e)
+ {
+ base.OnStartup(e);
+ bool uninstall = e.Args.Any(a => a.Equals("--uninstall", StringComparison.OrdinalIgnoreCase));
+ bool silent = e.Args.Any(a => a.Equals("/S", StringComparison.OrdinalIgnoreCase));
+ bool launch = e.Args.Any(a => a.Equals("/launch", StringComparison.OrdinalIgnoreCase));
+ var dirArg = e.Args.FirstOrDefault(a => a.StartsWith("/D=", StringComparison.OrdinalIgnoreCase))?.Substring(3);
+
+ // Stille Installation/Deinstallation für Skripte: DeskCore-Setup.exe /S [/D=Ordner] bzw. --uninstall /S
+ if (silent)
+ {
+ var progress = new Progress<(double, string)>(_ => { });
+ try
+ {
+ if (uninstall) Installer.Uninstall(removeData: false, progress);
+ else
+ {
+ var dir = dirArg ?? Installer.InstalledDir ?? Installer.DefaultDir;
+ Installer.Install(dir, desktopLink: Installer.InstalledDir is null || Installer.DesktopLinkExists,
+ autostart: Installer.AutostartEnabled, progress, installRuntime: true);
+ // nach einem Update aus DeskCore heraus: gleich wieder starten
+ if (launch) System.Diagnostics.Process.Start(System.IO.Path.Combine(dir, Installer.ExeName));
+ }
+ Shutdown(0);
+ }
+ catch (Exception ex)
+ {
+ // ohne Oberfläche: Fehler für Skripte nachvollziehbar ablegen
+ try { System.IO.File.WriteAllText(System.IO.Path.Combine(System.IO.Path.GetTempPath(), "DeskCore-Setup.log"), $"[{DateTime.Now}] {ex}"); } catch { }
+ Shutdown(1);
+ }
+ return;
+ }
+
+ ApplyTheme();
+ new MainWindow(uninstall).Show();
+ }
+
+ /// Hell/Dunkel und Akzentfarbe wie in Windows eingestellt.
+ private void ApplyTheme()
+ {
+ bool light = ReadDword(@"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", "AppsUseLightTheme") != 0;
+ Resources.MergedDictionaries[0] = new ResourceDictionary
+ {
+ Source = new Uri($"pack://application:,,,/Themes/Colors.{(light ? "Light" : "Dark")}.xaml"),
+ };
+ int abgr = ReadDword(@"Software\Microsoft\Windows\DWM", "AccentColor") is var v and not -1 ? v : unchecked((int)0xFFD77800);
+ var accent = Color.FromRgb((byte)abgr, (byte)(abgr >> 8), (byte)(abgr >> 16));
+ var a = light ? Mix(accent, Colors.Black, 0.12) : Mix(accent, Colors.White, 0.45);
+ Resources["AccentBrush"] = new SolidColorBrush(a);
+ Resources["AccentHoverBrush"] = new SolidColorBrush(light ? Mix(a, Colors.White, 0.1) : Mix(a, Colors.Black, 0.1));
+ Resources["OnAccentBrush"] = new SolidColorBrush(light ? Colors.White : Colors.Black);
+ Resources["AccentSubtleBrush"] = new SolidColorBrush(Color.FromArgb(light ? (byte)0x22 : (byte)0x30, a.R, a.G, a.B));
+ Resources["AccentSubtleStrokeBrush"] = new SolidColorBrush(Color.FromArgb(light ? (byte)0x55 : (byte)0x60, a.R, a.G, a.B));
+ }
+
+ private static int ReadDword(string key, string name)
+ {
+ try
+ {
+ using var k = Registry.CurrentUser.OpenSubKey(key);
+ return k?.GetValue(name) is int i ? i : -1;
+ }
+ catch { return -1; }
+ }
+
+ private static Color Mix(Color c, Color with, double t) => Color.FromRgb(
+ (byte)(c.R + (with.R - c.R) * t), (byte)(c.G + (with.G - c.G) * t), (byte)(c.B + (with.B - c.B) * t));
+}
diff --git a/Setup/Installer.cs b/Setup/Installer.cs
index 5a5d210..4383a8b 100644
--- a/Setup/Installer.cs
+++ b/Setup/Installer.cs
@@ -1,388 +1,388 @@
-using System.Diagnostics;
-using System.IO;
-using Microsoft.Win32;
-
-namespace DeskCoreSetup;
-
-/// Installation/Deinstallation – nur für den aktuellen Benutzer, ohne Administratorrechte.
-public static class Installer
-{
- public const string AppName = "DeskCore";
- public const string Publisher = "M_Viper";
- public const string ExeName = "DeskCore.exe";
- public const string UninstallerName = "DeskCore-Uninstall.exe";
- private const string UninstallKey = @"Software\Microsoft\Windows\CurrentVersion\Uninstall\DeskCore";
- private const string RunKey = @"Software\Microsoft\Windows\CurrentVersion\Run";
-
- public static string Version
- {
- get
- {
- var v = typeof(Installer).Assembly.GetName().Version!;
- return $"{v.Major}.{v.Minor}.{v.Build}";
- }
- }
-
- /// Pfad dieses Setups (auch als Deinstallationsprogramm).
- public static string SelfPath => System.Reflection.Assembly.GetExecutingAssembly().Location;
-
- public static string DefaultDir =>
- Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Programs", AppName);
-
- private static string StartMenuLink =>
- Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Programs), AppName + ".lnk");
-
- private static string DesktopLink =>
- Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), AppName + ".lnk");
-
- /// Ordner einer vorhandenen Installation (oder null).
- public static string? InstalledDir
- {
- get
- {
- using var k = Registry.CurrentUser.OpenSubKey(UninstallKey);
- return k?.GetValue("InstallLocation") as string is { } d && File.Exists(Path.Combine(d, ExeName)) ? d : null;
- }
- }
-
- public static string? InstalledVersion
- {
- get
- {
- using var k = Registry.CurrentUser.OpenSubKey(UninstallKey);
- return k?.GetValue("DisplayVersion") as string;
- }
- }
-
- public static bool AutostartEnabled
- {
- get
- {
- using var k = Registry.CurrentUser.OpenSubKey(RunKey);
- return k?.GetValue(AppName) is string;
- }
- }
-
- public static bool DesktopLinkExists => File.Exists(DesktopLink);
-
- public static string LicenseText => ReadResourceText("payload.LICENSE.txt");
-
- // ---------- Installieren ----------
-
- public static void Install(string dir, bool desktopLink, bool autostart, IProgress<(double, string)> progress,
- bool installRuntime = false)
- {
- if (!Runtime.Is64BitWindows)
- throw new InvalidOperationException("DeskCore benötigt ein 64-Bit-Windows (Windows 10 oder 11).");
- if (installRuntime && !Runtime.IsInstalled)
- {
- // 0–60 % für die Laufzeit, Rest für DeskCore
- Runtime.Install((v, text) => progress.Report((v * 0.6, text)));
- var inner = progress;
- progress = new Scaled(inner, 0.6, 0.4);
- }
-
- progress.Report((0.05, "DeskCore wird beendet …"));
- CloseRunningApp();
- RemoveLegacyInstall();
-
- progress.Report((0.2, "Dateien werden kopiert …"));
- Directory.CreateDirectory(dir);
- var exe = Path.Combine(dir, ExeName);
- WriteResource("payload.DeskCore.exe", exe);
- WriteResource("payload.LICENSE.txt", Path.Combine(dir, "LICENSE.txt"));
-
- // Setup selbst als Deinstallationsprogramm ablegen
- var self = SelfPath;
- var uninstaller = Path.Combine(dir, UninstallerName);
- if (!string.Equals(Path.GetFullPath(self), Path.GetFullPath(uninstaller), StringComparison.OrdinalIgnoreCase))
- {
- MoveAside(uninstaller);
- File.Copy(self, uninstaller, overwrite: true);
- }
-
- progress.Report((0.55, "Verknüpfungen werden angelegt …"));
- CreateShortcut(StartMenuLink, exe);
- if (desktopLink) CreateShortcut(DesktopLink, exe);
-
- progress.Report((0.75, "Windows wird eingerichtet …"));
- using (var run = Registry.CurrentUser.CreateSubKey(RunKey))
- {
- if (autostart) run.SetValue(AppName, $"\"{exe}\" --minimized");
- else run.DeleteValue(AppName, throwOnMissingValue: false);
- }
-
- using (var k = Registry.CurrentUser.CreateSubKey(UninstallKey))
- {
- long size = new[] { exe, uninstaller, Path.Combine(dir, "LICENSE.txt") }
- .Where(File.Exists).Sum(f => new FileInfo(f).Length) / 1024;
- k.SetValue("DisplayName", AppName);
- k.SetValue("DisplayVersion", Version);
- k.SetValue("Publisher", Publisher);
- k.SetValue("DisplayIcon", $"{exe},0");
- k.SetValue("InstallLocation", dir);
- k.SetValue("UninstallString", $"\"{uninstaller}\" --uninstall");
- k.SetValue("QuietUninstallString", $"\"{uninstaller}\" --uninstall /S");
- k.SetValue("URLInfoAbout", "https://m-viper.de");
- k.SetValue("InstallDate", DateTime.Now.ToString("yyyyMMdd"));
- k.SetValue("EstimatedSize", (int)size, RegistryValueKind.DWord);
- k.SetValue("NoModify", 1, RegistryValueKind.DWord);
- k.SetValue("NoRepair", 1, RegistryValueKind.DWord);
- }
-
- progress.Report((1.0, "Fertig"));
- }
-
- // ---------- Frühere Version "DeskHub" entfernen ----------
-
- private const string LegacyName = "DeskHub";
- private const string LegacyUninstallKey = @"Software\Microsoft\Windows\CurrentVersion\Uninstall\DeskHub";
-
- /// Ordner einer alten Installation unter dem früheren Namen "DeskHub" – nur unsere eigene.
- public static string? LegacyInstallDir
- {
- get
- {
- using var k = Registry.CurrentUser.OpenSubKey(LegacyUninstallKey);
- // "DeskHub" heißt auch ein anderes Programm → nur mit unserem Herausgeber anfassen
- if (k?.GetValue("Publisher") as string != Publisher) return null;
- return k.GetValue("InstallLocation") as string;
- }
- }
-
- private static void RemoveLegacyInstall()
- {
- var dir = LegacyInstallDir;
- if (dir is null) return;
- var exe = Path.Combine(dir, LegacyName + ".exe");
-
- // nur Prozesse beenden, die wirklich aus dem alten Ordner laufen
- foreach (var p in Process.GetProcessesByName(LegacyName))
- {
- try
- {
- if (p.MainModule?.FileName is { } f && Storage_IsUnder(f, dir))
- {
- p.Kill();
- p.WaitForExit(10000);
- }
- }
- catch { }
- }
-
- DeleteIfPointsTo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Programs), LegacyName + ".lnk"), exe);
- DeleteIfPointsTo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), LegacyName + ".lnk"), exe);
- using (var run = Registry.CurrentUser.OpenSubKey(RunKey, writable: true))
- {
- if (run?.GetValue(LegacyName) is string cmd && cmd.IndexOf(exe, StringComparison.OrdinalIgnoreCase) >= 0)
- run.DeleteValue(LegacyName, throwOnMissingValue: false);
- }
-
- foreach (var f in new[] { exe, Path.Combine(dir, "LICENSE.txt"), Path.Combine(dir, LegacyName + "-Uninstall.exe") })
- MoveAside(f);
- CleanupOldFiles(dir);
- try { Directory.Delete(dir); } catch { } // nur wenn leer
- Registry.CurrentUser.DeleteSubKeyTree(LegacyUninstallKey, throwOnMissingSubKey: false);
- }
-
- // ---------- Deinstallieren ----------
-
- public static readonly string[] DataDirs =
- [
- Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), AppName), // Kategorien
- Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), AppName), // Einstellungen
- Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), AppName), // Rückgängig-Zwischenablage
- ];
-
- public static void Uninstall(bool removeData, IProgress<(double, string)> progress)
- {
- // Nur im eingetragenen Installationsordner löschen – nie dort, wo das Setup zufällig liegt (z. B. Downloads)
- var dir = InstalledDir;
- var exe = dir is null ? "" : Path.Combine(dir, ExeName);
-
- progress.Report((0.1, "DeskCore wird beendet …"));
- CloseRunningApp();
-
- progress.Report((0.3, "Verknüpfungen werden entfernt …"));
- DeleteIfPointsTo(StartMenuLink, exe);
- DeleteIfPointsTo(DesktopLink, exe);
-
- progress.Report((0.45, "Windows-Einträge werden entfernt …"));
- using (var run = Registry.CurrentUser.OpenSubKey(RunKey, writable: true))
- run?.DeleteValue(AppName, throwOnMissingValue: false);
- Registry.CurrentUser.DeleteSubKeyTree(UninstallKey, throwOnMissingSubKey: false);
-
- if (removeData)
- {
- progress.Report((0.6, "Kategorien und Einstellungen werden in den Papierkorb gelegt …"));
- foreach (var d in DataDirs.Where(Directory.Exists))
- {
- try
- {
- Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory(d,
- Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs,
- Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin);
- }
- catch { }
- }
- }
-
- progress.Report((0.85, "Dateien werden entfernt …"));
- if (dir is null) { progress.Report((1.0, "Fertig")); return; }
- TryDelete(exe);
- TryDelete(Path.Combine(dir, "LICENSE.txt"));
- CleanupOldFiles(dir);
-
- // Das laufende Deinstallationsprogramm kann sich nicht selbst löschen → kurz nach dem Beenden per cmd.
- // rmdir ohne /s entfernt den Ordner nur, wenn er danach leer ist.
- var self = SelfPath;
- if (Storage_IsUnder(self, dir))
- {
- Process.Start(new ProcessStartInfo("cmd.exe",
- $"/c ping 127.0.0.1 -n 3 > nul & del /f /q \"{self}\" & del /f /q \"{Path.Combine(dir, "*.old")}\" & rmdir \"{dir}\"")
- {
- CreateNoWindow = true, UseShellExecute = false, WindowStyle = ProcessWindowStyle.Hidden,
- });
- }
- else
- {
- TryDelete(Path.Combine(dir, UninstallerName));
- try { Directory.Delete(dir); } catch { } // nur wenn leer
- }
- progress.Report((1.0, "Fertig"));
- }
-
- // ---------- Helfer ----------
-
- /// Rechnet Fortschritt 0–1 in einen Teilbereich um.
- private sealed class Scaled(IProgress<(double, string)> inner, double offset, double factor) : IProgress<(double, string)>
- {
- public void Report((double, string) value) => inner.Report((offset + value.Item1 * factor, value.Item2));
- }
-
- /// Laufendes DeskCore beenden (das X versteckt es nur im Infobereich).
- private static void CloseRunningApp()
- {
- foreach (var p in Process.GetProcessesByName("DeskCore"))
- {
- try
- {
- p.Kill();
- p.WaitForExit(10000);
- }
- catch { }
- }
- }
-
- private static void WriteResource(string name, string path)
- {
- CleanupOldFiles(Path.GetDirectoryName(path)!);
- MoveAside(path);
- for (int attempt = 1; ; attempt++)
- {
- try
- {
- using var s = typeof(Installer).Assembly.GetManifestResourceStream(name)
- ?? throw new InvalidOperationException($"Installationsdatei {name} fehlt.");
- using var f = File.Create(path);
- s.CopyTo(f);
- return;
- }
- catch (IOException) when (attempt < 10)
- {
- Thread.Sleep(500);
- }
- catch (IOException) when (attempt >= 10)
- {
- throw new IOException($"„{Path.GetFileName(path)}“ wird noch verwendet. Bitte DeskCore beenden (Rechtsklick auf das Symbol im Infobereich → Beenden) und erneut versuchen.");
- }
- }
- }
-
- ///
- /// Vorhandene Datei beiseite umbenennen. Das klappt unter Windows auch dann, wenn sie noch geöffnet ist
- /// (z. B. vom Explorer für das Icon oder vom Virenscanner) – überschreiben würde dagegen fehlschlagen.
- ///
- private static void MoveAside(string path)
- {
- if (!File.Exists(path)) return;
- try { File.Delete(path); return; } catch { }
- try { File.Move(path, $"{path}.{Guid.NewGuid():N}.old"); } catch { }
- }
-
- /// Beiseitegelegte Dateien früherer Installationen wegräumen (sofern nicht mehr in Benutzung).
- private static void CleanupOldFiles(string dir)
- {
- if (!Directory.Exists(dir)) return;
- foreach (var f in Directory.GetFiles(dir, "*.old"))
- try { File.Delete(f); } catch { }
- }
-
- private static string ReadResourceText(string name)
- {
- using var s = typeof(Installer).Assembly.GetManifestResourceStream(name);
- if (s is null) return "";
- using var r = new StreamReader(s);
- return r.ReadToEnd().Trim();
- }
-
- private static void CreateShortcut(string link, string target)
- {
- Directory.CreateDirectory(Path.GetDirectoryName(link)!);
- dynamic shell = Activator.CreateInstance(Type.GetTypeFromProgID("WScript.Shell")!)!;
- dynamic lnk = shell.CreateShortcut(link);
- lnk.TargetPath = target;
- lnk.WorkingDirectory = Path.GetDirectoryName(target);
- lnk.IconLocation = $"{target},0";
- lnk.Description = "Desktop-Icons in Kategorien sortieren";
- lnk.Save();
- }
-
- private static void DeleteIfPointsTo(string link, string target)
- {
- if (!File.Exists(link)) return;
- try
- {
- dynamic shell = Activator.CreateInstance(Type.GetTypeFromProgID("WScript.Shell")!)!;
- string t = shell.CreateShortcut(link).TargetPath;
- if (!string.Equals(t, target, StringComparison.OrdinalIgnoreCase)) return;
- }
- catch { return; }
- // Explorer/Indexdienst halten Verknüpfungen manchmal kurz fest → mehrmals versuchen
- for (int i = 0; i < 10 && File.Exists(link); i++)
- {
- try { File.Delete(link); }
- catch { Thread.Sleep(300); }
- }
- }
-
- private static void TryDelete(string path)
- {
- try { if (File.Exists(path)) File.Delete(path); } catch { }
- }
-
- private static bool Storage_IsUnder(string path, string dir) =>
- (Path.GetFullPath(path)).StartsWith(Path.GetFullPath(dir).TrimEnd('\\') + "\\", StringComparison.OrdinalIgnoreCase);
-
- public static long DataSize()
- {
- long sum = 0;
- foreach (var d in DataDirs.Where(Directory.Exists))
- {
- try
- {
- foreach (var f in Directory.EnumerateFiles(d, "*", SearchOption.AllDirectories))
- try { sum += new FileInfo(f).Length; } catch { }
- }
- catch { }
- }
- return sum;
- }
-
- public static string FormatSize(long bytes) => bytes switch
- {
- < 1024 * 1024 => $"{Math.Max(1, bytes / 1024)} KB",
- < 1024L * 1024 * 1024 => $"{bytes / 1024.0 / 1024:0.#} MB",
- _ => $"{bytes / 1024.0 / 1024 / 1024:0.##} GB",
- };
-}
+using System.Diagnostics;
+using System.IO;
+using Microsoft.Win32;
+
+namespace DeskCoreSetup;
+
+/// Installation/Deinstallation – nur für den aktuellen Benutzer, ohne Administratorrechte.
+public static class Installer
+{
+ public const string AppName = "DeskCore";
+ public const string Publisher = "M_Viper";
+ public const string ExeName = "DeskCore.exe";
+ public const string UninstallerName = "DeskCore-Uninstall.exe";
+ private const string UninstallKey = @"Software\Microsoft\Windows\CurrentVersion\Uninstall\DeskCore";
+ private const string RunKey = @"Software\Microsoft\Windows\CurrentVersion\Run";
+
+ public static string Version
+ {
+ get
+ {
+ var v = typeof(Installer).Assembly.GetName().Version!;
+ return $"{v.Major}.{v.Minor}.{v.Build}";
+ }
+ }
+
+ /// Pfad dieses Setups (auch als Deinstallationsprogramm).
+ public static string SelfPath => System.Reflection.Assembly.GetExecutingAssembly().Location;
+
+ public static string DefaultDir =>
+ Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Programs", AppName);
+
+ private static string StartMenuLink =>
+ Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Programs), AppName + ".lnk");
+
+ private static string DesktopLink =>
+ Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), AppName + ".lnk");
+
+ /// Ordner einer vorhandenen Installation (oder null).
+ public static string? InstalledDir
+ {
+ get
+ {
+ using var k = Registry.CurrentUser.OpenSubKey(UninstallKey);
+ return k?.GetValue("InstallLocation") as string is { } d && File.Exists(Path.Combine(d, ExeName)) ? d : null;
+ }
+ }
+
+ public static string? InstalledVersion
+ {
+ get
+ {
+ using var k = Registry.CurrentUser.OpenSubKey(UninstallKey);
+ return k?.GetValue("DisplayVersion") as string;
+ }
+ }
+
+ public static bool AutostartEnabled
+ {
+ get
+ {
+ using var k = Registry.CurrentUser.OpenSubKey(RunKey);
+ return k?.GetValue(AppName) is string;
+ }
+ }
+
+ public static bool DesktopLinkExists => File.Exists(DesktopLink);
+
+ public static string LicenseText => ReadResourceText("payload.LICENSE.txt");
+
+ // ---------- Installieren ----------
+
+ public static void Install(string dir, bool desktopLink, bool autostart, IProgress<(double, string)> progress,
+ bool installRuntime = false)
+ {
+ if (!Runtime.Is64BitWindows)
+ throw new InvalidOperationException("DeskCore benötigt ein 64-Bit-Windows (Windows 10 oder 11).");
+ if (installRuntime && !Runtime.IsInstalled)
+ {
+ // 0–60 % für die Laufzeit, Rest für DeskCore
+ Runtime.Install((v, text) => progress.Report((v * 0.6, text)));
+ var inner = progress;
+ progress = new Scaled(inner, 0.6, 0.4);
+ }
+
+ progress.Report((0.05, "DeskCore wird beendet …"));
+ CloseRunningApp();
+ RemoveLegacyInstall();
+
+ progress.Report((0.2, "Dateien werden kopiert …"));
+ Directory.CreateDirectory(dir);
+ var exe = Path.Combine(dir, ExeName);
+ WriteResource("payload.DeskCore.exe", exe);
+ WriteResource("payload.LICENSE.txt", Path.Combine(dir, "LICENSE.txt"));
+
+ // Setup selbst als Deinstallationsprogramm ablegen
+ var self = SelfPath;
+ var uninstaller = Path.Combine(dir, UninstallerName);
+ if (!string.Equals(Path.GetFullPath(self), Path.GetFullPath(uninstaller), StringComparison.OrdinalIgnoreCase))
+ {
+ MoveAside(uninstaller);
+ File.Copy(self, uninstaller, overwrite: true);
+ }
+
+ progress.Report((0.55, "Verknüpfungen werden angelegt …"));
+ CreateShortcut(StartMenuLink, exe);
+ if (desktopLink) CreateShortcut(DesktopLink, exe);
+
+ progress.Report((0.75, "Windows wird eingerichtet …"));
+ using (var run = Registry.CurrentUser.CreateSubKey(RunKey))
+ {
+ if (autostart) run.SetValue(AppName, $"\"{exe}\" --minimized");
+ else run.DeleteValue(AppName, throwOnMissingValue: false);
+ }
+
+ using (var k = Registry.CurrentUser.CreateSubKey(UninstallKey))
+ {
+ long size = new[] { exe, uninstaller, Path.Combine(dir, "LICENSE.txt") }
+ .Where(File.Exists).Sum(f => new FileInfo(f).Length) / 1024;
+ k.SetValue("DisplayName", AppName);
+ k.SetValue("DisplayVersion", Version);
+ k.SetValue("Publisher", Publisher);
+ k.SetValue("DisplayIcon", $"{exe},0");
+ k.SetValue("InstallLocation", dir);
+ k.SetValue("UninstallString", $"\"{uninstaller}\" --uninstall");
+ k.SetValue("QuietUninstallString", $"\"{uninstaller}\" --uninstall /S");
+ k.SetValue("URLInfoAbout", "https://m-viper.de");
+ k.SetValue("InstallDate", DateTime.Now.ToString("yyyyMMdd"));
+ k.SetValue("EstimatedSize", (int)size, RegistryValueKind.DWord);
+ k.SetValue("NoModify", 1, RegistryValueKind.DWord);
+ k.SetValue("NoRepair", 1, RegistryValueKind.DWord);
+ }
+
+ progress.Report((1.0, "Fertig"));
+ }
+
+ // ---------- Frühere Version "DeskHub" entfernen ----------
+
+ private const string LegacyName = "DeskHub";
+ private const string LegacyUninstallKey = @"Software\Microsoft\Windows\CurrentVersion\Uninstall\DeskHub";
+
+ /// Ordner einer alten Installation unter dem früheren Namen "DeskHub" – nur unsere eigene.
+ public static string? LegacyInstallDir
+ {
+ get
+ {
+ using var k = Registry.CurrentUser.OpenSubKey(LegacyUninstallKey);
+ // "DeskHub" heißt auch ein anderes Programm → nur mit unserem Herausgeber anfassen
+ if (k?.GetValue("Publisher") as string != Publisher) return null;
+ return k.GetValue("InstallLocation") as string;
+ }
+ }
+
+ private static void RemoveLegacyInstall()
+ {
+ var dir = LegacyInstallDir;
+ if (dir is null) return;
+ var exe = Path.Combine(dir, LegacyName + ".exe");
+
+ // nur Prozesse beenden, die wirklich aus dem alten Ordner laufen
+ foreach (var p in Process.GetProcessesByName(LegacyName))
+ {
+ try
+ {
+ if (p.MainModule?.FileName is { } f && Storage_IsUnder(f, dir))
+ {
+ p.Kill();
+ p.WaitForExit(10000);
+ }
+ }
+ catch { }
+ }
+
+ DeleteIfPointsTo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Programs), LegacyName + ".lnk"), exe);
+ DeleteIfPointsTo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), LegacyName + ".lnk"), exe);
+ using (var run = Registry.CurrentUser.OpenSubKey(RunKey, writable: true))
+ {
+ if (run?.GetValue(LegacyName) is string cmd && cmd.IndexOf(exe, StringComparison.OrdinalIgnoreCase) >= 0)
+ run.DeleteValue(LegacyName, throwOnMissingValue: false);
+ }
+
+ foreach (var f in new[] { exe, Path.Combine(dir, "LICENSE.txt"), Path.Combine(dir, LegacyName + "-Uninstall.exe") })
+ MoveAside(f);
+ CleanupOldFiles(dir);
+ try { Directory.Delete(dir); } catch { } // nur wenn leer
+ Registry.CurrentUser.DeleteSubKeyTree(LegacyUninstallKey, throwOnMissingSubKey: false);
+ }
+
+ // ---------- Deinstallieren ----------
+
+ public static readonly string[] DataDirs =
+ [
+ Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), AppName), // Kategorien
+ Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), AppName), // Einstellungen
+ Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), AppName), // Rückgängig-Zwischenablage
+ ];
+
+ public static void Uninstall(bool removeData, IProgress<(double, string)> progress)
+ {
+ // Nur im eingetragenen Installationsordner löschen – nie dort, wo das Setup zufällig liegt (z. B. Downloads)
+ var dir = InstalledDir;
+ var exe = dir is null ? "" : Path.Combine(dir, ExeName);
+
+ progress.Report((0.1, "DeskCore wird beendet …"));
+ CloseRunningApp();
+
+ progress.Report((0.3, "Verknüpfungen werden entfernt …"));
+ DeleteIfPointsTo(StartMenuLink, exe);
+ DeleteIfPointsTo(DesktopLink, exe);
+
+ progress.Report((0.45, "Windows-Einträge werden entfernt …"));
+ using (var run = Registry.CurrentUser.OpenSubKey(RunKey, writable: true))
+ run?.DeleteValue(AppName, throwOnMissingValue: false);
+ Registry.CurrentUser.DeleteSubKeyTree(UninstallKey, throwOnMissingSubKey: false);
+
+ if (removeData)
+ {
+ progress.Report((0.6, "Kategorien und Einstellungen werden in den Papierkorb gelegt …"));
+ foreach (var d in DataDirs.Where(Directory.Exists))
+ {
+ try
+ {
+ Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory(d,
+ Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs,
+ Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin);
+ }
+ catch { }
+ }
+ }
+
+ progress.Report((0.85, "Dateien werden entfernt …"));
+ if (dir is null) { progress.Report((1.0, "Fertig")); return; }
+ TryDelete(exe);
+ TryDelete(Path.Combine(dir, "LICENSE.txt"));
+ CleanupOldFiles(dir);
+
+ // Das laufende Deinstallationsprogramm kann sich nicht selbst löschen → kurz nach dem Beenden per cmd.
+ // rmdir ohne /s entfernt den Ordner nur, wenn er danach leer ist.
+ var self = SelfPath;
+ if (Storage_IsUnder(self, dir))
+ {
+ Process.Start(new ProcessStartInfo("cmd.exe",
+ $"/c ping 127.0.0.1 -n 3 > nul & del /f /q \"{self}\" & del /f /q \"{Path.Combine(dir, "*.old")}\" & rmdir \"{dir}\"")
+ {
+ CreateNoWindow = true, UseShellExecute = false, WindowStyle = ProcessWindowStyle.Hidden,
+ });
+ }
+ else
+ {
+ TryDelete(Path.Combine(dir, UninstallerName));
+ try { Directory.Delete(dir); } catch { } // nur wenn leer
+ }
+ progress.Report((1.0, "Fertig"));
+ }
+
+ // ---------- Helfer ----------
+
+ /// Rechnet Fortschritt 0–1 in einen Teilbereich um.
+ private sealed class Scaled(IProgress<(double, string)> inner, double offset, double factor) : IProgress<(double, string)>
+ {
+ public void Report((double, string) value) => inner.Report((offset + value.Item1 * factor, value.Item2));
+ }
+
+ /// Laufendes DeskCore beenden (das X versteckt es nur im Infobereich).
+ private static void CloseRunningApp()
+ {
+ foreach (var p in Process.GetProcessesByName("DeskCore"))
+ {
+ try
+ {
+ p.Kill();
+ p.WaitForExit(10000);
+ }
+ catch { }
+ }
+ }
+
+ private static void WriteResource(string name, string path)
+ {
+ CleanupOldFiles(Path.GetDirectoryName(path)!);
+ MoveAside(path);
+ for (int attempt = 1; ; attempt++)
+ {
+ try
+ {
+ using var s = typeof(Installer).Assembly.GetManifestResourceStream(name)
+ ?? throw new InvalidOperationException($"Installationsdatei {name} fehlt.");
+ using var f = File.Create(path);
+ s.CopyTo(f);
+ return;
+ }
+ catch (IOException) when (attempt < 10)
+ {
+ Thread.Sleep(500);
+ }
+ catch (IOException) when (attempt >= 10)
+ {
+ throw new IOException($"„{Path.GetFileName(path)}“ wird noch verwendet. Bitte DeskCore beenden (Rechtsklick auf das Symbol im Infobereich → Beenden) und erneut versuchen.");
+ }
+ }
+ }
+
+ ///
+ /// Vorhandene Datei beiseite umbenennen. Das klappt unter Windows auch dann, wenn sie noch geöffnet ist
+ /// (z. B. vom Explorer für das Icon oder vom Virenscanner) – überschreiben würde dagegen fehlschlagen.
+ ///
+ private static void MoveAside(string path)
+ {
+ if (!File.Exists(path)) return;
+ try { File.Delete(path); return; } catch { }
+ try { File.Move(path, $"{path}.{Guid.NewGuid():N}.old"); } catch { }
+ }
+
+ /// Beiseitegelegte Dateien früherer Installationen wegräumen (sofern nicht mehr in Benutzung).
+ private static void CleanupOldFiles(string dir)
+ {
+ if (!Directory.Exists(dir)) return;
+ foreach (var f in Directory.GetFiles(dir, "*.old"))
+ try { File.Delete(f); } catch { }
+ }
+
+ private static string ReadResourceText(string name)
+ {
+ using var s = typeof(Installer).Assembly.GetManifestResourceStream(name);
+ if (s is null) return "";
+ using var r = new StreamReader(s);
+ return r.ReadToEnd().Trim();
+ }
+
+ private static void CreateShortcut(string link, string target)
+ {
+ Directory.CreateDirectory(Path.GetDirectoryName(link)!);
+ dynamic shell = Activator.CreateInstance(Type.GetTypeFromProgID("WScript.Shell")!)!;
+ dynamic lnk = shell.CreateShortcut(link);
+ lnk.TargetPath = target;
+ lnk.WorkingDirectory = Path.GetDirectoryName(target);
+ lnk.IconLocation = $"{target},0";
+ lnk.Description = "Desktop-Icons in Kategorien sortieren";
+ lnk.Save();
+ }
+
+ private static void DeleteIfPointsTo(string link, string target)
+ {
+ if (!File.Exists(link)) return;
+ try
+ {
+ dynamic shell = Activator.CreateInstance(Type.GetTypeFromProgID("WScript.Shell")!)!;
+ string t = shell.CreateShortcut(link).TargetPath;
+ if (!string.Equals(t, target, StringComparison.OrdinalIgnoreCase)) return;
+ }
+ catch { return; }
+ // Explorer/Indexdienst halten Verknüpfungen manchmal kurz fest → mehrmals versuchen
+ for (int i = 0; i < 10 && File.Exists(link); i++)
+ {
+ try { File.Delete(link); }
+ catch { Thread.Sleep(300); }
+ }
+ }
+
+ private static void TryDelete(string path)
+ {
+ try { if (File.Exists(path)) File.Delete(path); } catch { }
+ }
+
+ private static bool Storage_IsUnder(string path, string dir) =>
+ (Path.GetFullPath(path)).StartsWith(Path.GetFullPath(dir).TrimEnd('\\') + "\\", StringComparison.OrdinalIgnoreCase);
+
+ public static long DataSize()
+ {
+ long sum = 0;
+ foreach (var d in DataDirs.Where(Directory.Exists))
+ {
+ try
+ {
+ foreach (var f in Directory.EnumerateFiles(d, "*", SearchOption.AllDirectories))
+ try { sum += new FileInfo(f).Length; } catch { }
+ }
+ catch { }
+ }
+ return sum;
+ }
+
+ public static string FormatSize(long bytes) => bytes switch
+ {
+ < 1024 * 1024 => $"{Math.Max(1, bytes / 1024)} KB",
+ < 1024L * 1024 * 1024 => $"{bytes / 1024.0 / 1024:0.#} MB",
+ _ => $"{bytes / 1024.0 / 1024 / 1024:0.##} GB",
+ };
+}
diff --git a/Setup/MainWindow.xaml b/Setup/MainWindow.xaml
index 007e5d4..6ddee11 100644
--- a/Setup/MainWindow.xaml
+++ b/Setup/MainWindow.xaml
@@ -1,183 +1,183 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Setup/MainWindow.xaml.cs b/Setup/MainWindow.xaml.cs
index e4777e5..d6cd7ee 100644
--- a/Setup/MainWindow.xaml.cs
+++ b/Setup/MainWindow.xaml.cs
@@ -1,279 +1,279 @@
-using System.Diagnostics;
-using System.IO;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-
-namespace DeskCoreSetup;
-
-public partial class MainWindow : Window
-{
- private readonly bool _uninstall;
- private int _page;
- private bool _busy;
- private bool _done;
- private string? _installedExe;
-
- public MainWindow(bool uninstall)
- {
- InitializeComponent();
- _uninstall = uninstall;
- VersionText.Text = $"Version {Installer.Version}";
- LicenseText.Text = Installer.LicenseText;
-
- DirBox.Text = Installer.InstalledDir ?? Installer.DefaultDir;
- DesktopLinkBox.IsChecked = Installer.InstalledDir is null || Installer.DesktopLinkExists;
- AutostartBox.IsChecked = Installer.AutostartEnabled;
-
- if (!Runtime.IsInstalled)
- {
- RuntimeHint.Visibility = Visibility.Visible;
- RuntimeBox.Visibility = Visibility.Visible;
- RuntimeHintText.Text = Runtime.Is64BitWindows
- ? "DeskCore benötigt die kostenlose „Microsoft .NET 9 Desktop Runtime“. Sie fehlt auf diesem PC und wird bei der " +
- "Installation automatisch von Microsoft geladen (ca. 55 MB). Windows fragt dabei einmal nach Administratorrechten."
- : "DeskCore benötigt ein 64-Bit-Windows (Windows 10 oder 11) und kann auf diesem PC leider nicht installiert werden.";
- }
-
- if (Installer.InstalledDir is null && Installer.LegacyInstallDir is not null)
- {
- UpdateHint.Visibility = Visibility.Visible;
- UpdateHintText.Text = "Die bisherige Version „DeskHub“ wird durch DeskCore ersetzt. Deine Kategorien und Einstellungen werden übernommen.";
- }
- else if (Installer.InstalledDir is not null)
- {
- UpdateHint.Visibility = Visibility.Visible;
- UpdateHintText.Text = Installer.InstalledVersion == Installer.Version
- ? $"DeskCore {Installer.Version} ist bereits installiert und wird neu installiert. Deine Kategorien und Einstellungen bleiben erhalten."
- : $"Die vorhandene Installation (Version {Installer.InstalledVersion}) wird durch Version {Installer.Version} ersetzt. Deine Kategorien und Einstellungen bleiben erhalten.";
- }
-
- if (_uninstall)
- {
- Title = WindowTitle.Text = "DeskCore deinstallieren";
- Steps.Visibility = Visibility.Collapsed;
- ShowOnly(PageUninstall);
- NextButton.Content = "Deinstallieren";
- BackButton.Visibility = Visibility.Collapsed;
- LoadDataInfo();
- }
- else ShowPage(0);
- }
-
- // ---------- Seiten ----------
-
- private void ShowOnly(UIElement page)
- {
- foreach (var p in new UIElement[] { PageWelcome, PageLicense, PageOptions, PageProgress, PageUninstall })
- p.Visibility = p == page ? Visibility.Visible : Visibility.Collapsed;
- }
-
- private void ShowPage(int page)
- {
- _page = page;
- ShowOnly(page switch { 0 => PageWelcome, 1 => PageLicense, 2 => PageOptions, _ => PageProgress });
-
- var steps = new[] { Step0, Step1, Step2, Step3 };
- for (int i = 0; i < steps.Length; i++)
- {
- var label = ((string)steps[i].Tag ?? (string)(steps[i].Tag = steps[i].Text));
- steps[i].Text = i < page || (_done && i == page) ? $"✓ {label}" : label;
- steps[i].FontWeight = i == page ? FontWeights.SemiBold : FontWeights.Normal;
- steps[i].Foreground = (Brush)FindResource(i == page ? "TextBrush" : i < page ? "TextSecondaryBrush" : "TextTertiaryBrush");
- }
-
- BackButton.Visibility = page is 1 or 2 ? Visibility.Visible : Visibility.Hidden;
- NextButton.Content = page switch { 2 => "Installieren", 3 => "Fertigstellen", _ => "Weiter" };
- NextButton.IsEnabled = page != 1 || AcceptLicense.IsChecked == true;
- }
-
- private void AcceptLicense_Click(object sender, RoutedEventArgs e) => NextButton.IsEnabled = AcceptLicense.IsChecked == true;
-
- private void Back_Click(object sender, RoutedEventArgs e)
- {
- if (!_busy && _page > 0) ShowPage(_page - 1);
- }
-
- private async void Next_Click(object sender, RoutedEventArgs e)
- {
- if (_busy) return;
-
- if (_uninstall)
- {
- if (_done) { Close(); return; }
- await RunUninstall();
- return;
- }
-
- switch (_page)
- {
- case 0: ShowPage(1); break;
- case 1 when AcceptLicense.IsChecked == true: ShowPage(2); break;
- case 2:
- var dir = DirBox.Text.Trim();
- if (!IsFullPath(dir) || dir.IndexOfAny(Path.GetInvalidPathChars()) >= 0)
- {
- MessageBox.Show(this, "Bitte einen gültigen Ordner angeben, z. B. C:\\Programme\\DeskCore.", "DeskCore Setup");
- return;
- }
- await RunInstall(dir);
- break;
- case 3:
- if (LaunchBox.IsChecked == true && _installedExe is not null)
- Process.Start(new ProcessStartInfo(_installedExe) { UseShellExecute = true });
- Close();
- break;
- }
- }
-
- private void ChangeDir_Click(object sender, RoutedEventArgs e)
- {
- using var dlg = new System.Windows.Forms.FolderBrowserDialog
- {
- Description = "Installationsordner wählen",
- SelectedPath = Directory.Exists(DirBox.Text) ? DirBox.Text : Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
- ShowNewFolderButton = true,
- };
- if (dlg.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
- var chosen = dlg.SelectedPath;
- // wie bei üblichen Installern: Unterordner "DeskCore" anhängen
- DirBox.Text = Path.GetFileName(chosen.TrimEnd('\\')).Equals("DeskCore", StringComparison.OrdinalIgnoreCase)
- ? chosen : Path.Combine(chosen, "DeskCore");
- }
-
- // ---------- Installation ----------
-
- private async Task RunInstall(string dir)
- {
- _busy = true;
- ShowPage(3);
- SetButtons(false);
- var progress = new Progress<(double Value, string Text)>(p => SetProgress(p.Value, p.Text));
- bool desktop = DesktopLinkBox.IsChecked == true, autostart = AutostartBox.IsChecked == true;
- bool runtime = RuntimeBox.Visibility == Visibility.Visible && RuntimeBox.IsChecked == true;
- try
- {
- await Task.Run(() => Installer.Install(dir, desktop, autostart, progress, runtime));
- _installedExe = Path.Combine(dir, Installer.ExeName);
- _done = true;
- ProgressTitle.Text = "Installation abgeschlossen";
- ProgressText.Text = $"DeskCore wurde in {dir} installiert. Du findest es im Startmenü" + (desktop ? " und auf dem Desktop." : ".");
- DoneText.Text = "Alles bereit!";
- DonePanel.Visibility = Visibility.Visible;
- if (!Runtime.IsInstalled)
- {
- // Laufzeit fehlt weiterhin (abgewählt) → Hinweis statt Startversuch
- DoneText.Text = "DeskCore ist installiert";
- RuntimeMissing.Visibility = Visibility.Visible;
- LaunchBox.IsChecked = false;
- LaunchBox.IsEnabled = false;
- }
- ShowPage(3);
- }
- catch (Exception ex)
- {
- ProgressTitle.Text = "Installation fehlgeschlagen";
- ProgressText.Text = ex.Message;
- ProgressText.Foreground = (Brush)FindResource("DangerBrush");
- NextButton.Content = "Schließen";
- _installedExe = null;
- }
- _busy = false;
- NextButton.IsEnabled = true;
- CloseButton.IsEnabled = true;
- BackButton.Visibility = Visibility.Hidden;
- CancelButton.Visibility = Visibility.Collapsed;
- }
-
- // ---------- Deinstallation ----------
-
- private async void LoadDataInfo()
- {
- var root = Installer.DataDirs[0];
- if (!Directory.Exists(root))
- {
- DataInfo.Text = "Es wurden keine Kategorien gefunden.";
- return;
- }
- DataInfo.Text = $"Sie liegen in {root}. Größe wird berechnet …";
- var size = await Task.Run(Installer.DataSize);
- DataInfo.Text = $"Sie liegen in {root} ({Installer.FormatSize(size)}) und bleiben dort, falls du DeskCore später wieder installierst.";
- }
-
- private void RemoveDataBox_Click(object sender, RoutedEventArgs e) =>
- RemoveDataWarning.Visibility = RemoveDataBox.IsChecked == true ? Visibility.Visible : Visibility.Collapsed;
-
- private async Task RunUninstall()
- {
- _busy = true;
- bool removeData = RemoveDataBox.IsChecked == true;
- ShowOnly(PageProgress);
- ProgressTitle.Text = "DeskCore wird entfernt …";
- LaunchBox.Visibility = Visibility.Collapsed;
- SetButtons(false);
- var progress = new Progress<(double Value, string Text)>(p => SetProgress(p.Value, p.Text));
- try
- {
- await Task.Run(() => Installer.Uninstall(removeData, progress));
- ProgressTitle.Text = "Deinstallation abgeschlossen";
- ProgressText.Text = removeData
- ? "DeskCore, deine Kategorien und Einstellungen wurden entfernt (die Daten liegen im Papierkorb)."
- : "DeskCore wurde entfernt. Deine Kategorien liegen weiterhin in " + Installer.DataDirs[0] + ".";
- DoneText.Text = "Fertig";
- DonePanel.Visibility = Visibility.Visible;
- }
- catch (Exception ex)
- {
- ProgressTitle.Text = "Deinstallation fehlgeschlagen";
- ProgressText.Text = ex.Message;
- }
- _done = true;
- _busy = false;
- CloseButton.IsEnabled = true;
- NextButton.Content = "Schließen";
- NextButton.IsEnabled = true;
- CancelButton.Visibility = Visibility.Collapsed;
- }
-
- // ---------- Helfer ----------
-
- private void SetButtons(bool enabled)
- {
- NextButton.IsEnabled = enabled;
- BackButton.IsEnabled = enabled;
- CancelButton.IsEnabled = enabled;
- CloseButton.IsEnabled = enabled;
- }
-
- private void SetProgress(double value, string text)
- {
- if (!_done) ProgressText.Text = text;
- var target = Math.Max(0, ProgressTrack.ActualWidth * value);
- ProgressFill.BeginAnimation(WidthProperty,
- new DoubleAnimation(target, TimeSpan.FromMilliseconds(250)) { EasingFunction = new CubicEase() });
- }
-
- private static bool IsFullPath(string p) =>
- p.Length >= 3 && char.IsLetter(p[0]) && p[1] == ':' && (p[2] == '\\' || p[2] == '/');
-
- private void OpenRuntimePage_Click(object sender, RoutedEventArgs e) =>
- Process.Start(new ProcessStartInfo(Runtime.DownloadPage) { UseShellExecute = true });
-
- private void Minimize_Click(object sender, RoutedEventArgs e) => WindowState = WindowState.Minimized;
-
- private void Cancel_Click(object sender, RoutedEventArgs e)
- {
- if (_busy) return;
- if (!_done && !_uninstall && _page > 0 &&
- MessageBox.Show(this, "Installation wirklich abbrechen?", "DeskCore Setup", MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes)
- return;
- Close();
- }
-
- protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
- {
- if (_busy) e.Cancel = true; // während der Installation nicht schließen
- base.OnClosing(e);
- }
-}
+using System.Diagnostics;
+using System.IO;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+
+namespace DeskCoreSetup;
+
+public partial class MainWindow : Window
+{
+ private readonly bool _uninstall;
+ private int _page;
+ private bool _busy;
+ private bool _done;
+ private string? _installedExe;
+
+ public MainWindow(bool uninstall)
+ {
+ InitializeComponent();
+ _uninstall = uninstall;
+ VersionText.Text = $"Version {Installer.Version}";
+ LicenseText.Text = Installer.LicenseText;
+
+ DirBox.Text = Installer.InstalledDir ?? Installer.DefaultDir;
+ DesktopLinkBox.IsChecked = Installer.InstalledDir is null || Installer.DesktopLinkExists;
+ AutostartBox.IsChecked = Installer.AutostartEnabled;
+
+ if (!Runtime.IsInstalled)
+ {
+ RuntimeHint.Visibility = Visibility.Visible;
+ RuntimeBox.Visibility = Visibility.Visible;
+ RuntimeHintText.Text = Runtime.Is64BitWindows
+ ? "DeskCore benötigt die kostenlose „Microsoft .NET 9 Desktop Runtime“. Sie fehlt auf diesem PC und wird bei der " +
+ "Installation automatisch von Microsoft geladen (ca. 55 MB). Windows fragt dabei einmal nach Administratorrechten."
+ : "DeskCore benötigt ein 64-Bit-Windows (Windows 10 oder 11) und kann auf diesem PC leider nicht installiert werden.";
+ }
+
+ if (Installer.InstalledDir is null && Installer.LegacyInstallDir is not null)
+ {
+ UpdateHint.Visibility = Visibility.Visible;
+ UpdateHintText.Text = "Die bisherige Version „DeskHub“ wird durch DeskCore ersetzt. Deine Kategorien und Einstellungen werden übernommen.";
+ }
+ else if (Installer.InstalledDir is not null)
+ {
+ UpdateHint.Visibility = Visibility.Visible;
+ UpdateHintText.Text = Installer.InstalledVersion == Installer.Version
+ ? $"DeskCore {Installer.Version} ist bereits installiert und wird neu installiert. Deine Kategorien und Einstellungen bleiben erhalten."
+ : $"Die vorhandene Installation (Version {Installer.InstalledVersion}) wird durch Version {Installer.Version} ersetzt. Deine Kategorien und Einstellungen bleiben erhalten.";
+ }
+
+ if (_uninstall)
+ {
+ Title = WindowTitle.Text = "DeskCore deinstallieren";
+ Steps.Visibility = Visibility.Collapsed;
+ ShowOnly(PageUninstall);
+ NextButton.Content = "Deinstallieren";
+ BackButton.Visibility = Visibility.Collapsed;
+ LoadDataInfo();
+ }
+ else ShowPage(0);
+ }
+
+ // ---------- Seiten ----------
+
+ private void ShowOnly(UIElement page)
+ {
+ foreach (var p in new UIElement[] { PageWelcome, PageLicense, PageOptions, PageProgress, PageUninstall })
+ p.Visibility = p == page ? Visibility.Visible : Visibility.Collapsed;
+ }
+
+ private void ShowPage(int page)
+ {
+ _page = page;
+ ShowOnly(page switch { 0 => PageWelcome, 1 => PageLicense, 2 => PageOptions, _ => PageProgress });
+
+ var steps = new[] { Step0, Step1, Step2, Step3 };
+ for (int i = 0; i < steps.Length; i++)
+ {
+ var label = ((string)steps[i].Tag ?? (string)(steps[i].Tag = steps[i].Text));
+ steps[i].Text = i < page || (_done && i == page) ? $"✓ {label}" : label;
+ steps[i].FontWeight = i == page ? FontWeights.SemiBold : FontWeights.Normal;
+ steps[i].Foreground = (Brush)FindResource(i == page ? "TextBrush" : i < page ? "TextSecondaryBrush" : "TextTertiaryBrush");
+ }
+
+ BackButton.Visibility = page is 1 or 2 ? Visibility.Visible : Visibility.Hidden;
+ NextButton.Content = page switch { 2 => "Installieren", 3 => "Fertigstellen", _ => "Weiter" };
+ NextButton.IsEnabled = page != 1 || AcceptLicense.IsChecked == true;
+ }
+
+ private void AcceptLicense_Click(object sender, RoutedEventArgs e) => NextButton.IsEnabled = AcceptLicense.IsChecked == true;
+
+ private void Back_Click(object sender, RoutedEventArgs e)
+ {
+ if (!_busy && _page > 0) ShowPage(_page - 1);
+ }
+
+ private async void Next_Click(object sender, RoutedEventArgs e)
+ {
+ if (_busy) return;
+
+ if (_uninstall)
+ {
+ if (_done) { Close(); return; }
+ await RunUninstall();
+ return;
+ }
+
+ switch (_page)
+ {
+ case 0: ShowPage(1); break;
+ case 1 when AcceptLicense.IsChecked == true: ShowPage(2); break;
+ case 2:
+ var dir = DirBox.Text.Trim();
+ if (!IsFullPath(dir) || dir.IndexOfAny(Path.GetInvalidPathChars()) >= 0)
+ {
+ MessageBox.Show(this, "Bitte einen gültigen Ordner angeben, z. B. C:\\Programme\\DeskCore.", "DeskCore Setup");
+ return;
+ }
+ await RunInstall(dir);
+ break;
+ case 3:
+ if (LaunchBox.IsChecked == true && _installedExe is not null)
+ Process.Start(new ProcessStartInfo(_installedExe) { UseShellExecute = true });
+ Close();
+ break;
+ }
+ }
+
+ private void ChangeDir_Click(object sender, RoutedEventArgs e)
+ {
+ using var dlg = new System.Windows.Forms.FolderBrowserDialog
+ {
+ Description = "Installationsordner wählen",
+ SelectedPath = Directory.Exists(DirBox.Text) ? DirBox.Text : Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
+ ShowNewFolderButton = true,
+ };
+ if (dlg.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
+ var chosen = dlg.SelectedPath;
+ // wie bei üblichen Installern: Unterordner "DeskCore" anhängen
+ DirBox.Text = Path.GetFileName(chosen.TrimEnd('\\')).Equals("DeskCore", StringComparison.OrdinalIgnoreCase)
+ ? chosen : Path.Combine(chosen, "DeskCore");
+ }
+
+ // ---------- Installation ----------
+
+ private async Task RunInstall(string dir)
+ {
+ _busy = true;
+ ShowPage(3);
+ SetButtons(false);
+ var progress = new Progress<(double Value, string Text)>(p => SetProgress(p.Value, p.Text));
+ bool desktop = DesktopLinkBox.IsChecked == true, autostart = AutostartBox.IsChecked == true;
+ bool runtime = RuntimeBox.Visibility == Visibility.Visible && RuntimeBox.IsChecked == true;
+ try
+ {
+ await Task.Run(() => Installer.Install(dir, desktop, autostart, progress, runtime));
+ _installedExe = Path.Combine(dir, Installer.ExeName);
+ _done = true;
+ ProgressTitle.Text = "Installation abgeschlossen";
+ ProgressText.Text = $"DeskCore wurde in {dir} installiert. Du findest es im Startmenü" + (desktop ? " und auf dem Desktop." : ".");
+ DoneText.Text = "Alles bereit!";
+ DonePanel.Visibility = Visibility.Visible;
+ if (!Runtime.IsInstalled)
+ {
+ // Laufzeit fehlt weiterhin (abgewählt) → Hinweis statt Startversuch
+ DoneText.Text = "DeskCore ist installiert";
+ RuntimeMissing.Visibility = Visibility.Visible;
+ LaunchBox.IsChecked = false;
+ LaunchBox.IsEnabled = false;
+ }
+ ShowPage(3);
+ }
+ catch (Exception ex)
+ {
+ ProgressTitle.Text = "Installation fehlgeschlagen";
+ ProgressText.Text = ex.Message;
+ ProgressText.Foreground = (Brush)FindResource("DangerBrush");
+ NextButton.Content = "Schließen";
+ _installedExe = null;
+ }
+ _busy = false;
+ NextButton.IsEnabled = true;
+ CloseButton.IsEnabled = true;
+ BackButton.Visibility = Visibility.Hidden;
+ CancelButton.Visibility = Visibility.Collapsed;
+ }
+
+ // ---------- Deinstallation ----------
+
+ private async void LoadDataInfo()
+ {
+ var root = Installer.DataDirs[0];
+ if (!Directory.Exists(root))
+ {
+ DataInfo.Text = "Es wurden keine Kategorien gefunden.";
+ return;
+ }
+ DataInfo.Text = $"Sie liegen in {root}. Größe wird berechnet …";
+ var size = await Task.Run(Installer.DataSize);
+ DataInfo.Text = $"Sie liegen in {root} ({Installer.FormatSize(size)}) und bleiben dort, falls du DeskCore später wieder installierst.";
+ }
+
+ private void RemoveDataBox_Click(object sender, RoutedEventArgs e) =>
+ RemoveDataWarning.Visibility = RemoveDataBox.IsChecked == true ? Visibility.Visible : Visibility.Collapsed;
+
+ private async Task RunUninstall()
+ {
+ _busy = true;
+ bool removeData = RemoveDataBox.IsChecked == true;
+ ShowOnly(PageProgress);
+ ProgressTitle.Text = "DeskCore wird entfernt …";
+ LaunchBox.Visibility = Visibility.Collapsed;
+ SetButtons(false);
+ var progress = new Progress<(double Value, string Text)>(p => SetProgress(p.Value, p.Text));
+ try
+ {
+ await Task.Run(() => Installer.Uninstall(removeData, progress));
+ ProgressTitle.Text = "Deinstallation abgeschlossen";
+ ProgressText.Text = removeData
+ ? "DeskCore, deine Kategorien und Einstellungen wurden entfernt (die Daten liegen im Papierkorb)."
+ : "DeskCore wurde entfernt. Deine Kategorien liegen weiterhin in " + Installer.DataDirs[0] + ".";
+ DoneText.Text = "Fertig";
+ DonePanel.Visibility = Visibility.Visible;
+ }
+ catch (Exception ex)
+ {
+ ProgressTitle.Text = "Deinstallation fehlgeschlagen";
+ ProgressText.Text = ex.Message;
+ }
+ _done = true;
+ _busy = false;
+ CloseButton.IsEnabled = true;
+ NextButton.Content = "Schließen";
+ NextButton.IsEnabled = true;
+ CancelButton.Visibility = Visibility.Collapsed;
+ }
+
+ // ---------- Helfer ----------
+
+ private void SetButtons(bool enabled)
+ {
+ NextButton.IsEnabled = enabled;
+ BackButton.IsEnabled = enabled;
+ CancelButton.IsEnabled = enabled;
+ CloseButton.IsEnabled = enabled;
+ }
+
+ private void SetProgress(double value, string text)
+ {
+ if (!_done) ProgressText.Text = text;
+ var target = Math.Max(0, ProgressTrack.ActualWidth * value);
+ ProgressFill.BeginAnimation(WidthProperty,
+ new DoubleAnimation(target, TimeSpan.FromMilliseconds(250)) { EasingFunction = new CubicEase() });
+ }
+
+ private static bool IsFullPath(string p) =>
+ p.Length >= 3 && char.IsLetter(p[0]) && p[1] == ':' && (p[2] == '\\' || p[2] == '/');
+
+ private void OpenRuntimePage_Click(object sender, RoutedEventArgs e) =>
+ Process.Start(new ProcessStartInfo(Runtime.DownloadPage) { UseShellExecute = true });
+
+ private void Minimize_Click(object sender, RoutedEventArgs e) => WindowState = WindowState.Minimized;
+
+ private void Cancel_Click(object sender, RoutedEventArgs e)
+ {
+ if (_busy) return;
+ if (!_done && !_uninstall && _page > 0 &&
+ MessageBox.Show(this, "Installation wirklich abbrechen?", "DeskCore Setup", MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes)
+ return;
+ Close();
+ }
+
+ protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
+ {
+ if (_busy) e.Cancel = true; // während der Installation nicht schließen
+ base.OnClosing(e);
+ }
+}
diff --git a/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.deps.json b/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.deps.json
new file mode 100644
index 0000000..8f40fa4
--- /dev/null
+++ b/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.deps.json
@@ -0,0 +1,24 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v9.0/win-x64",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v9.0": {},
+ ".NETCoreApp,Version=v9.0/win-x64": {
+ "DeskCore-Setup/1.0.0": {
+ "runtime": {
+ "DeskCore-Setup.dll": {}
+ }
+ }
+ }
+ },
+ "libraries": {
+ "DeskCore-Setup/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.dll b/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.dll
new file mode 100644
index 0000000..ecd1209
Binary files /dev/null and b/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.dll differ
diff --git a/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.exe b/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.exe
new file mode 100644
index 0000000..8132198
Binary files /dev/null and b/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.exe differ
diff --git a/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.runtimeconfig.json b/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.runtimeconfig.json
new file mode 100644
index 0000000..7f70d46
--- /dev/null
+++ b/Setup/bin/Release/net9.0-windows/win-x64/DeskCore-Setup.runtimeconfig.json
@@ -0,0 +1,20 @@
+{
+ "runtimeOptions": {
+ "tfm": "net9.0",
+ "frameworks": [
+ {
+ "name": "Microsoft.NETCore.App",
+ "version": "9.0.0"
+ },
+ {
+ "name": "Microsoft.WindowsDesktop.App",
+ "version": "9.0.0"
+ }
+ ],
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
+ "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/Setup/obj/DeskCoreSetup.csproj.nuget.dgspec.json b/Setup/obj/DeskCoreSetup.csproj.nuget.dgspec.json
new file mode 100644
index 0000000..e61a521
--- /dev/null
+++ b/Setup/obj/DeskCoreSetup.csproj.nuget.dgspec.json
@@ -0,0 +1,59 @@
+{
+ "format": 1,
+ "restore": {
+ "C:\\Users\\Viper\\Desktop\\Programme\\DeskCore-Source\\Setup\\DeskCoreSetup.csproj": {}
+ },
+ "projects": {
+ "C:\\Users\\Viper\\Desktop\\Programme\\DeskCore-Source\\Setup\\DeskCoreSetup.csproj": {
+ "version": "1.0.2",
+ "restore": {
+ "projectUniqueName": "C:\\Users\\Viper\\Desktop\\Programme\\DeskCore-Source\\Setup\\DeskCoreSetup.csproj",
+ "projectName": "DeskCore-Setup",
+ "projectPath": "C:\\Users\\Viper\\Desktop\\Programme\\DeskCore-Source\\Setup\\DeskCoreSetup.csproj",
+ "packagesPath": "C:\\Users\\Viper\\.nuget\\packages\\",
+ "outputPath": "C:\\Users\\Viper\\Desktop\\Programme\\DeskCore-Source\\Setup\\obj\\",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "C:\\Users\\Viper\\AppData\\Roaming\\NuGet\\NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "net48"
+ ],
+ "sources": {
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net48": {
+ "targetAlias": "net48",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ },
+ "SdkAnalysisLevel": "10.0.100"
+ },
+ "frameworks": {
+ "net48": {
+ "targetAlias": "net48",
+ "dependencies": {
+ "Microsoft.NETFramework.ReferenceAssemblies": {
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[1.0.3, )",
+ "autoReferenced": true
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.112\\RuntimeIdentifierGraph.json"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Setup/obj/DeskCoreSetup.csproj.nuget.g.props b/Setup/obj/DeskCoreSetup.csproj.nuget.g.props
new file mode 100644
index 0000000..5db7e09
--- /dev/null
+++ b/Setup/obj/DeskCoreSetup.csproj.nuget.g.props
@@ -0,0 +1,15 @@
+
+
+
+ True
+ NuGet
+ $(MSBuildThisFileDirectory)project.assets.json
+ $(UserProfile)\.nuget\packages\
+ C:\Users\Viper\.nuget\packages\
+ PackageReference
+ 7.0.0
+
+
+
+
+
\ No newline at end of file
diff --git a/Setup/obj/DeskCoreSetup.csproj.nuget.g.targets b/Setup/obj/DeskCoreSetup.csproj.nuget.g.targets
new file mode 100644
index 0000000..83f7de5
--- /dev/null
+++ b/Setup/obj/DeskCoreSetup.csproj.nuget.g.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Setup/obj/Release/net48/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/Setup/obj/Release/net48/.NETFramework,Version=v4.8.AssemblyAttributes.cs
new file mode 100644
index 0000000..3cf0af3
--- /dev/null
+++ b/Setup/obj/Release/net48/.NETFramework,Version=v4.8.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
diff --git a/Setup/obj/Release/net48/App.baml b/Setup/obj/Release/net48/App.baml
new file mode 100644
index 0000000..d6f269d
Binary files /dev/null and b/Setup/obj/Release/net48/App.baml differ
diff --git a/Setup/obj/Release/net48/App.g.cs b/Setup/obj/Release/net48/App.g.cs
new file mode 100644
index 0000000..a7003de
--- /dev/null
+++ b/Setup/obj/Release/net48/App.g.cs
@@ -0,0 +1,77 @@
+#pragma checksum "..\..\..\App.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "2F55484CCDC4F93150C83267DEA1BE82F9151116"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Controls.Ribbon;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Forms.Integration;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace DeskCoreSetup {
+
+
+ ///
+ /// App
+ ///
+ public partial class App : System.Windows.Application {
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.12.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/DeskCore-Setup;component/app.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\App.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ ///
+ /// Application Entry Point.
+ ///
+ [System.STAThreadAttribute()]
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.12.0")]
+ public static void Main() {
+ DeskCoreSetup.App app = new DeskCoreSetup.App();
+ app.InitializeComponent();
+ app.Run();
+ }
+ }
+}
+
diff --git a/Setup/obj/Release/net48/Colors.Dark.baml b/Setup/obj/Release/net48/Colors.Dark.baml
new file mode 100644
index 0000000..17c32ce
Binary files /dev/null and b/Setup/obj/Release/net48/Colors.Dark.baml differ
diff --git a/Setup/obj/Release/net48/Colors.Light.baml b/Setup/obj/Release/net48/Colors.Light.baml
new file mode 100644
index 0000000..8d10637
Binary files /dev/null and b/Setup/obj/Release/net48/Colors.Light.baml differ
diff --git a/Setup/obj/Release/net48/Controls.baml b/Setup/obj/Release/net48/Controls.baml
new file mode 100644
index 0000000..e82be68
Binary files /dev/null and b/Setup/obj/Release/net48/Controls.baml differ
diff --git a/Setup/obj/Release/net48/DeskCore-Setup.exe b/Setup/obj/Release/net48/DeskCore-Setup.exe
new file mode 100644
index 0000000..4a287d4
Binary files /dev/null and b/Setup/obj/Release/net48/DeskCore-Setup.exe differ
diff --git a/Setup/obj/Release/net48/DeskCore-Setup.exe.withSupportedRuntime.config b/Setup/obj/Release/net48/DeskCore-Setup.exe.withSupportedRuntime.config
new file mode 100644
index 0000000..ef94b7c
--- /dev/null
+++ b/Setup/obj/Release/net48/DeskCore-Setup.exe.withSupportedRuntime.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Setup/obj/Release/net48/DeskCore-Setup.g.resources b/Setup/obj/Release/net48/DeskCore-Setup.g.resources
new file mode 100644
index 0000000..2f61d23
Binary files /dev/null and b/Setup/obj/Release/net48/DeskCore-Setup.g.resources differ
diff --git a/Setup/obj/Release/net48/DeskCore-Setup_MarkupCompile.cache b/Setup/obj/Release/net48/DeskCore-Setup_MarkupCompile.cache
new file mode 100644
index 0000000..70b767d
--- /dev/null
+++ b/Setup/obj/Release/net48/DeskCore-Setup_MarkupCompile.cache
@@ -0,0 +1,20 @@
+DeskCore-Setup
+
+
+winexe
+C#
+.cs
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\
+DeskCoreSetup
+none
+false
+TRACE;RELEASE;NETFRAMEWORK;NET48;NET30_OR_GREATER;NET35_OR_GREATER;NET40_OR_GREATER;NET45_OR_GREATER;NET451_OR_GREATER;NET452_OR_GREATER;NET46_OR_GREATER;NET461_OR_GREATER;NET462_OR_GREATER;NET47_OR_GREATER;NET471_OR_GREATER;NET472_OR_GREATER;NET48_OR_GREATER
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\App.xaml
+4-1182040411
+
+5-706554335
+241796289289
+MainWindow.xaml;..\Themes\Colors.Light.xaml;..\Themes\Colors.Dark.xaml;..\Themes\Controls.xaml;
+
+False
+
diff --git a/Setup/obj/Release/net48/DeskCoreSetup.AssemblyInfo.cs b/Setup/obj/Release/net48/DeskCoreSetup.AssemblyInfo.cs
new file mode 100644
index 0000000..157e381
--- /dev/null
+++ b/Setup/obj/Release/net48/DeskCoreSetup.AssemblyInfo.cs
@@ -0,0 +1,25 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("M_Viper")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
+[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright (c) M_Viper. Alle Rechte vorbehalten.")]
+[assembly: System.Reflection.AssemblyDescriptionAttribute("Installiert DeskCore")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.2.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.2")]
+[assembly: System.Reflection.AssemblyProductAttribute("DeskCore Setup")]
+[assembly: System.Reflection.AssemblyTitleAttribute("DeskCore Setup")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.2.0")]
+[assembly: System.Resources.NeutralResourcesLanguageAttribute("de-DE")]
+
+// Von der MSBuild WriteCodeFragment-Klasse generiert.
+
diff --git a/Setup/obj/Release/net48/DeskCoreSetup.AssemblyInfoInputs.cache b/Setup/obj/Release/net48/DeskCoreSetup.AssemblyInfoInputs.cache
new file mode 100644
index 0000000..3b11275
--- /dev/null
+++ b/Setup/obj/Release/net48/DeskCoreSetup.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+998ec94b85fc0b36797c21782b2eeb7956eea9290fb02db5dd064534e4226df4
diff --git a/Setup/obj/Release/net48/DeskCoreSetup.GeneratedMSBuildEditorConfig.editorconfig b/Setup/obj/Release/net48/DeskCoreSetup.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 0000000..9e03d8c
--- /dev/null
+++ b/Setup/obj/Release/net48/DeskCoreSetup.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,14 @@
+is_global = true
+build_property.ApplicationManifest =
+build_property.StartupObject =
+build_property.ApplicationDefaultFont =
+build_property.ApplicationHighDpiMode =
+build_property.ApplicationUseCompatibleTextRendering =
+build_property.ApplicationVisualStyles =
+build_property.RootNamespace = DeskCoreSetup
+build_property.ProjectDir = C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
+build_property.CsWinRTUseWindowsUIXamlProjections = false
+build_property.EffectiveAnalysisLevelStyle =
+build_property.EnableCodeStyleSeverity =
diff --git a/Setup/obj/Release/net48/DeskCoreSetup.GlobalUsings.g.cs b/Setup/obj/Release/net48/DeskCoreSetup.GlobalUsings.g.cs
new file mode 100644
index 0000000..4a15929
--- /dev/null
+++ b/Setup/obj/Release/net48/DeskCoreSetup.GlobalUsings.g.cs
@@ -0,0 +1,6 @@
+//
+global using System;
+global using System.Collections.Generic;
+global using System.Linq;
+global using System.Threading;
+global using System.Threading.Tasks;
diff --git a/Setup/obj/Release/net48/DeskCoreSetup.assets.cache b/Setup/obj/Release/net48/DeskCoreSetup.assets.cache
new file mode 100644
index 0000000..45688c3
Binary files /dev/null and b/Setup/obj/Release/net48/DeskCoreSetup.assets.cache differ
diff --git a/Setup/obj/Release/net48/DeskCoreSetup.csproj.AssemblyReference.cache b/Setup/obj/Release/net48/DeskCoreSetup.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..f84494a
Binary files /dev/null and b/Setup/obj/Release/net48/DeskCoreSetup.csproj.AssemblyReference.cache differ
diff --git a/Setup/obj/Release/net48/DeskCoreSetup.csproj.CoreCompileInputs.cache b/Setup/obj/Release/net48/DeskCoreSetup.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..3f155fe
--- /dev/null
+++ b/Setup/obj/Release/net48/DeskCoreSetup.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+054b30b1baba2269cbcd4852a291a982fdd2874935a858bccfe0f353f3966d8b
diff --git a/Setup/obj/Release/net48/DeskCoreSetup.csproj.FileListAbsolute.txt b/Setup/obj/Release/net48/DeskCoreSetup.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..ea5dc4b
--- /dev/null
+++ b/Setup/obj/Release/net48/DeskCoreSetup.csproj.FileListAbsolute.txt
@@ -0,0 +1,17 @@
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\artifacts\setup\DeskCore-Setup.exe.config
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\artifacts\setup\DeskCore-Setup.exe
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\DeskCoreSetup.csproj.AssemblyReference.cache
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\MainWindow.baml
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\Colors.Light.baml
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\Colors.Dark.baml
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\Controls.baml
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\App.baml
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\MainWindow.g.cs
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\App.g.cs
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\DeskCore-Setup_MarkupCompile.cache
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\DeskCore-Setup.g.resources
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\DeskCoreSetup.GeneratedMSBuildEditorConfig.editorconfig
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\DeskCoreSetup.AssemblyInfoInputs.cache
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\DeskCoreSetup.AssemblyInfo.cs
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\DeskCoreSetup.csproj.CoreCompileInputs.cache
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\Setup\obj\Release\net48\DeskCore-Setup.exe
diff --git a/Setup/obj/Release/net48/MainWindow.baml b/Setup/obj/Release/net48/MainWindow.baml
new file mode 100644
index 0000000..c9698a4
Binary files /dev/null and b/Setup/obj/Release/net48/MainWindow.baml differ
diff --git a/Setup/obj/Release/net48/MainWindow.g.cs b/Setup/obj/Release/net48/MainWindow.g.cs
new file mode 100644
index 0000000..cb7e38b
--- /dev/null
+++ b/Setup/obj/Release/net48/MainWindow.g.cs
@@ -0,0 +1,556 @@
+#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "35944FD50A7EBB591A07AA8A05B692F31E01686F"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Controls.Ribbon;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Forms.Integration;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace DeskCoreSetup {
+
+
+ ///
+ /// MainWindow
+ ///
+ public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 48 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock WindowTitle;
+
+ #line default
+ #line hidden
+
+
+ #line 53 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button CloseButton;
+
+ #line default
+ #line hidden
+
+
+ #line 62 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock VersionText;
+
+ #line default
+ #line hidden
+
+
+ #line 63 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Steps;
+
+ #line default
+ #line hidden
+
+
+ #line 64 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock Step0;
+
+ #line default
+ #line hidden
+
+
+ #line 65 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock Step1;
+
+ #line default
+ #line hidden
+
+
+ #line 66 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock Step2;
+
+ #line default
+ #line hidden
+
+
+ #line 67 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock Step3;
+
+ #line default
+ #line hidden
+
+
+ #line 76 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel PageWelcome;
+
+ #line default
+ #line hidden
+
+
+ #line 82 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border RuntimeHint;
+
+ #line default
+ #line hidden
+
+
+ #line 87 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock RuntimeHintText;
+
+ #line default
+ #line hidden
+
+
+ #line 90 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border UpdateHint;
+
+ #line default
+ #line hidden
+
+
+ #line 95 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock UpdateHintText;
+
+ #line default
+ #line hidden
+
+
+ #line 101 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.DockPanel PageLicense;
+
+ #line default
+ #line hidden
+
+
+ #line 103 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox AcceptLicense;
+
+ #line default
+ #line hidden
+
+
+ #line 108 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock LicenseText;
+
+ #line default
+ #line hidden
+
+
+ #line 114 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel PageOptions;
+
+ #line default
+ #line hidden
+
+
+ #line 119 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox DirBox;
+
+ #line default
+ #line hidden
+
+
+ #line 121 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox DesktopLinkBox;
+
+ #line default
+ #line hidden
+
+
+ #line 122 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox StartMenuBox;
+
+ #line default
+ #line hidden
+
+
+ #line 123 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox AutostartBox;
+
+ #line default
+ #line hidden
+
+
+ #line 124 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox RuntimeBox;
+
+ #line default
+ #line hidden
+
+
+ #line 129 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel PageProgress;
+
+ #line default
+ #line hidden
+
+
+ #line 130 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock ProgressTitle;
+
+ #line default
+ #line hidden
+
+
+ #line 131 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock ProgressText;
+
+ #line default
+ #line hidden
+
+
+ #line 132 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border ProgressTrack;
+
+ #line default
+ #line hidden
+
+
+ #line 133 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border ProgressFill;
+
+ #line default
+ #line hidden
+
+
+ #line 135 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel DonePanel;
+
+ #line default
+ #line hidden
+
+
+ #line 141 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock DoneText;
+
+ #line default
+ #line hidden
+
+
+ #line 143 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border RuntimeMissing;
+
+ #line default
+ #line hidden
+
+
+ #line 151 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox LaunchBox;
+
+ #line default
+ #line hidden
+
+
+ #line 156 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel PageUninstall;
+
+ #line default
+ #line hidden
+
+
+ #line 164 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock DataInfo;
+
+ #line default
+ #line hidden
+
+
+ #line 165 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox RemoveDataBox;
+
+ #line default
+ #line hidden
+
+
+ #line 167 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock RemoveDataWarning;
+
+ #line default
+ #line hidden
+
+
+ #line 178 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button BackButton;
+
+ #line default
+ #line hidden
+
+
+ #line 179 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button NextButton;
+
+ #line default
+ #line hidden
+
+
+ #line 180 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button CancelButton;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.12.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/DeskCore-Setup;component/mainwindow.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\MainWindow.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.12.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+ this.WindowTitle = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 2:
+
+ #line 51 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Minimize_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 3:
+ this.CloseButton = ((System.Windows.Controls.Button)(target));
+
+ #line 53 "..\..\..\MainWindow.xaml"
+ this.CloseButton.Click += new System.Windows.RoutedEventHandler(this.Cancel_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.VersionText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 5:
+ this.Steps = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 6:
+ this.Step0 = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 7:
+ this.Step1 = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 8:
+ this.Step2 = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 9:
+ this.Step3 = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 10:
+ this.PageWelcome = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 11:
+ this.RuntimeHint = ((System.Windows.Controls.Border)(target));
+ return;
+ case 12:
+ this.RuntimeHintText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 13:
+ this.UpdateHint = ((System.Windows.Controls.Border)(target));
+ return;
+ case 14:
+ this.UpdateHintText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 15:
+ this.PageLicense = ((System.Windows.Controls.DockPanel)(target));
+ return;
+ case 16:
+ this.AcceptLicense = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 103 "..\..\..\MainWindow.xaml"
+ this.AcceptLicense.Click += new System.Windows.RoutedEventHandler(this.AcceptLicense_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 17:
+ this.LicenseText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 18:
+ this.PageOptions = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 19:
+
+ #line 118 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ChangeDir_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 20:
+ this.DirBox = ((System.Windows.Controls.TextBox)(target));
+ return;
+ case 21:
+ this.DesktopLinkBox = ((System.Windows.Controls.CheckBox)(target));
+ return;
+ case 22:
+ this.StartMenuBox = ((System.Windows.Controls.CheckBox)(target));
+ return;
+ case 23:
+ this.AutostartBox = ((System.Windows.Controls.CheckBox)(target));
+ return;
+ case 24:
+ this.RuntimeBox = ((System.Windows.Controls.CheckBox)(target));
+ return;
+ case 25:
+ this.PageProgress = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 26:
+ this.ProgressTitle = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 27:
+ this.ProgressText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 28:
+ this.ProgressTrack = ((System.Windows.Controls.Border)(target));
+ return;
+ case 29:
+ this.ProgressFill = ((System.Windows.Controls.Border)(target));
+ return;
+ case 30:
+ this.DonePanel = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 31:
+ this.DoneText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 32:
+ this.RuntimeMissing = ((System.Windows.Controls.Border)(target));
+ return;
+ case 33:
+
+ #line 148 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OpenRuntimePage_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 34:
+ this.LaunchBox = ((System.Windows.Controls.CheckBox)(target));
+ return;
+ case 35:
+ this.PageUninstall = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 36:
+ this.DataInfo = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 37:
+ this.RemoveDataBox = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 166 "..\..\..\MainWindow.xaml"
+ this.RemoveDataBox.Click += new System.Windows.RoutedEventHandler(this.RemoveDataBox_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 38:
+ this.RemoveDataWarning = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 39:
+ this.BackButton = ((System.Windows.Controls.Button)(target));
+
+ #line 178 "..\..\..\MainWindow.xaml"
+ this.BackButton.Click += new System.Windows.RoutedEventHandler(this.Back_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 40:
+ this.NextButton = ((System.Windows.Controls.Button)(target));
+
+ #line 179 "..\..\..\MainWindow.xaml"
+ this.NextButton.Click += new System.Windows.RoutedEventHandler(this.Next_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 41:
+ this.CancelButton = ((System.Windows.Controls.Button)(target));
+
+ #line 180 "..\..\..\MainWindow.xaml"
+ this.CancelButton.Click += new System.Windows.RoutedEventHandler(this.Cancel_Click);
+
+ #line default
+ #line hidden
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/Setup/obj/Release/net9.0-windows/win-x64/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/Setup/obj/Release/net9.0-windows/win-x64/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs
new file mode 100644
index 0000000..ea1f2ea
--- /dev/null
+++ b/Setup/obj/Release/net9.0-windows/win-x64/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
diff --git a/Setup/obj/Release/net9.0-windows/win-x64/App.baml b/Setup/obj/Release/net9.0-windows/win-x64/App.baml
new file mode 100644
index 0000000..565920e
Binary files /dev/null and b/Setup/obj/Release/net9.0-windows/win-x64/App.baml differ
diff --git a/Setup/obj/project.assets.json b/Setup/obj/project.assets.json
new file mode 100644
index 0000000..2069abd
--- /dev/null
+++ b/Setup/obj/project.assets.json
@@ -0,0 +1,471 @@
+{
+ "version": 3,
+ "targets": {
+ ".NETFramework,Version=v4.8": {
+ "Microsoft.NETFramework.ReferenceAssemblies/1.0.3": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3"
+ }
+ },
+ "Microsoft.NETFramework.ReferenceAssemblies.net48/1.0.3": {
+ "type": "package",
+ "build": {
+ "build/Microsoft.NETFramework.ReferenceAssemblies.net48.targets": {}
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.NETFramework.ReferenceAssemblies/1.0.3": {
+ "sha512": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==",
+ "type": "package",
+ "path": "microsoft.netframework.referenceassemblies/1.0.3",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "microsoft.netframework.referenceassemblies.1.0.3.nupkg.sha512",
+ "microsoft.netframework.referenceassemblies.nuspec"
+ ]
+ },
+ "Microsoft.NETFramework.ReferenceAssemblies.net48/1.0.3": {
+ "sha512": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==",
+ "type": "package",
+ "path": "microsoft.netframework.referenceassemblies.net48/1.0.3",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "build/.NETFramework/v4.8/Accessibility.dll",
+ "build/.NETFramework/v4.8/Accessibility.xml",
+ "build/.NETFramework/v4.8/CustomMarshalers.dll",
+ "build/.NETFramework/v4.8/CustomMarshalers.xml",
+ "build/.NETFramework/v4.8/Facades/Microsoft.Win32.Primitives.dll",
+ "build/.NETFramework/v4.8/Facades/System.AppContext.dll",
+ "build/.NETFramework/v4.8/Facades/System.Collections.Concurrent.dll",
+ "build/.NETFramework/v4.8/Facades/System.Collections.NonGeneric.dll",
+ "build/.NETFramework/v4.8/Facades/System.Collections.Specialized.dll",
+ "build/.NETFramework/v4.8/Facades/System.Collections.dll",
+ "build/.NETFramework/v4.8/Facades/System.ComponentModel.Annotations.dll",
+ "build/.NETFramework/v4.8/Facades/System.ComponentModel.EventBasedAsync.dll",
+ "build/.NETFramework/v4.8/Facades/System.ComponentModel.Primitives.dll",
+ "build/.NETFramework/v4.8/Facades/System.ComponentModel.TypeConverter.dll",
+ "build/.NETFramework/v4.8/Facades/System.ComponentModel.dll",
+ "build/.NETFramework/v4.8/Facades/System.Console.dll",
+ "build/.NETFramework/v4.8/Facades/System.Data.Common.dll",
+ "build/.NETFramework/v4.8/Facades/System.Diagnostics.Contracts.dll",
+ "build/.NETFramework/v4.8/Facades/System.Diagnostics.Debug.dll",
+ "build/.NETFramework/v4.8/Facades/System.Diagnostics.FileVersionInfo.dll",
+ "build/.NETFramework/v4.8/Facades/System.Diagnostics.Process.dll",
+ "build/.NETFramework/v4.8/Facades/System.Diagnostics.StackTrace.dll",
+ "build/.NETFramework/v4.8/Facades/System.Diagnostics.TextWriterTraceListener.dll",
+ "build/.NETFramework/v4.8/Facades/System.Diagnostics.Tools.dll",
+ "build/.NETFramework/v4.8/Facades/System.Diagnostics.TraceSource.dll",
+ "build/.NETFramework/v4.8/Facades/System.Drawing.Primitives.dll",
+ "build/.NETFramework/v4.8/Facades/System.Dynamic.Runtime.dll",
+ "build/.NETFramework/v4.8/Facades/System.Globalization.Calendars.dll",
+ "build/.NETFramework/v4.8/Facades/System.Globalization.Extensions.dll",
+ "build/.NETFramework/v4.8/Facades/System.Globalization.dll",
+ "build/.NETFramework/v4.8/Facades/System.IO.Compression.ZipFile.dll",
+ "build/.NETFramework/v4.8/Facades/System.IO.FileSystem.DriveInfo.dll",
+ "build/.NETFramework/v4.8/Facades/System.IO.FileSystem.Primitives.dll",
+ "build/.NETFramework/v4.8/Facades/System.IO.FileSystem.Watcher.dll",
+ "build/.NETFramework/v4.8/Facades/System.IO.FileSystem.dll",
+ "build/.NETFramework/v4.8/Facades/System.IO.IsolatedStorage.dll",
+ "build/.NETFramework/v4.8/Facades/System.IO.MemoryMappedFiles.dll",
+ "build/.NETFramework/v4.8/Facades/System.IO.Pipes.dll",
+ "build/.NETFramework/v4.8/Facades/System.IO.UnmanagedMemoryStream.dll",
+ "build/.NETFramework/v4.8/Facades/System.IO.dll",
+ "build/.NETFramework/v4.8/Facades/System.Linq.Expressions.dll",
+ "build/.NETFramework/v4.8/Facades/System.Linq.Parallel.dll",
+ "build/.NETFramework/v4.8/Facades/System.Linq.Queryable.dll",
+ "build/.NETFramework/v4.8/Facades/System.Linq.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.Http.Rtc.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.NameResolution.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.NetworkInformation.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.Ping.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.Primitives.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.Requests.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.Security.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.Sockets.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.WebHeaderCollection.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.WebSockets.Client.dll",
+ "build/.NETFramework/v4.8/Facades/System.Net.WebSockets.dll",
+ "build/.NETFramework/v4.8/Facades/System.ObjectModel.dll",
+ "build/.NETFramework/v4.8/Facades/System.Reflection.Emit.ILGeneration.dll",
+ "build/.NETFramework/v4.8/Facades/System.Reflection.Emit.Lightweight.dll",
+ "build/.NETFramework/v4.8/Facades/System.Reflection.Emit.dll",
+ "build/.NETFramework/v4.8/Facades/System.Reflection.Extensions.dll",
+ "build/.NETFramework/v4.8/Facades/System.Reflection.Primitives.dll",
+ "build/.NETFramework/v4.8/Facades/System.Reflection.dll",
+ "build/.NETFramework/v4.8/Facades/System.Resources.Reader.dll",
+ "build/.NETFramework/v4.8/Facades/System.Resources.ResourceManager.dll",
+ "build/.NETFramework/v4.8/Facades/System.Resources.Writer.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.CompilerServices.VisualC.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.Extensions.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.Handles.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.InteropServices.WindowsRuntime.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.InteropServices.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.Numerics.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.Serialization.Formatters.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.Serialization.Json.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.Serialization.Primitives.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.Serialization.Xml.dll",
+ "build/.NETFramework/v4.8/Facades/System.Runtime.dll",
+ "build/.NETFramework/v4.8/Facades/System.Security.Claims.dll",
+ "build/.NETFramework/v4.8/Facades/System.Security.Cryptography.Algorithms.dll",
+ "build/.NETFramework/v4.8/Facades/System.Security.Cryptography.Csp.dll",
+ "build/.NETFramework/v4.8/Facades/System.Security.Cryptography.Encoding.dll",
+ "build/.NETFramework/v4.8/Facades/System.Security.Cryptography.Primitives.dll",
+ "build/.NETFramework/v4.8/Facades/System.Security.Cryptography.X509Certificates.dll",
+ "build/.NETFramework/v4.8/Facades/System.Security.Principal.dll",
+ "build/.NETFramework/v4.8/Facades/System.Security.SecureString.dll",
+ "build/.NETFramework/v4.8/Facades/System.ServiceModel.Duplex.dll",
+ "build/.NETFramework/v4.8/Facades/System.ServiceModel.Http.dll",
+ "build/.NETFramework/v4.8/Facades/System.ServiceModel.NetTcp.dll",
+ "build/.NETFramework/v4.8/Facades/System.ServiceModel.Primitives.dll",
+ "build/.NETFramework/v4.8/Facades/System.ServiceModel.Security.dll",
+ "build/.NETFramework/v4.8/Facades/System.Text.Encoding.Extensions.dll",
+ "build/.NETFramework/v4.8/Facades/System.Text.Encoding.dll",
+ "build/.NETFramework/v4.8/Facades/System.Text.RegularExpressions.dll",
+ "build/.NETFramework/v4.8/Facades/System.Threading.Overlapped.dll",
+ "build/.NETFramework/v4.8/Facades/System.Threading.Tasks.Parallel.dll",
+ "build/.NETFramework/v4.8/Facades/System.Threading.Tasks.dll",
+ "build/.NETFramework/v4.8/Facades/System.Threading.Thread.dll",
+ "build/.NETFramework/v4.8/Facades/System.Threading.ThreadPool.dll",
+ "build/.NETFramework/v4.8/Facades/System.Threading.Timer.dll",
+ "build/.NETFramework/v4.8/Facades/System.Threading.dll",
+ "build/.NETFramework/v4.8/Facades/System.ValueTuple.dll",
+ "build/.NETFramework/v4.8/Facades/System.Xml.ReaderWriter.dll",
+ "build/.NETFramework/v4.8/Facades/System.Xml.XDocument.dll",
+ "build/.NETFramework/v4.8/Facades/System.Xml.XPath.XDocument.dll",
+ "build/.NETFramework/v4.8/Facades/System.Xml.XPath.dll",
+ "build/.NETFramework/v4.8/Facades/System.Xml.XmlDocument.dll",
+ "build/.NETFramework/v4.8/Facades/System.Xml.XmlSerializer.dll",
+ "build/.NETFramework/v4.8/Facades/netstandard.dll",
+ "build/.NETFramework/v4.8/ISymWrapper.dll",
+ "build/.NETFramework/v4.8/ISymWrapper.xml",
+ "build/.NETFramework/v4.8/Microsoft.Activities.Build.dll",
+ "build/.NETFramework/v4.8/Microsoft.Activities.Build.xml",
+ "build/.NETFramework/v4.8/Microsoft.Build.Conversion.v4.0.dll",
+ "build/.NETFramework/v4.8/Microsoft.Build.Conversion.v4.0.xml",
+ "build/.NETFramework/v4.8/Microsoft.Build.Engine.dll",
+ "build/.NETFramework/v4.8/Microsoft.Build.Engine.xml",
+ "build/.NETFramework/v4.8/Microsoft.Build.Framework.dll",
+ "build/.NETFramework/v4.8/Microsoft.Build.Framework.xml",
+ "build/.NETFramework/v4.8/Microsoft.Build.Tasks.v4.0.dll",
+ "build/.NETFramework/v4.8/Microsoft.Build.Tasks.v4.0.xml",
+ "build/.NETFramework/v4.8/Microsoft.Build.Utilities.v4.0.dll",
+ "build/.NETFramework/v4.8/Microsoft.Build.Utilities.v4.0.xml",
+ "build/.NETFramework/v4.8/Microsoft.Build.dll",
+ "build/.NETFramework/v4.8/Microsoft.Build.xml",
+ "build/.NETFramework/v4.8/Microsoft.CSharp.dll",
+ "build/.NETFramework/v4.8/Microsoft.CSharp.xml",
+ "build/.NETFramework/v4.8/Microsoft.JScript.dll",
+ "build/.NETFramework/v4.8/Microsoft.JScript.xml",
+ "build/.NETFramework/v4.8/Microsoft.VisualBasic.Compatibility.Data.dll",
+ "build/.NETFramework/v4.8/Microsoft.VisualBasic.Compatibility.Data.xml",
+ "build/.NETFramework/v4.8/Microsoft.VisualBasic.Compatibility.dll",
+ "build/.NETFramework/v4.8/Microsoft.VisualBasic.Compatibility.xml",
+ "build/.NETFramework/v4.8/Microsoft.VisualBasic.dll",
+ "build/.NETFramework/v4.8/Microsoft.VisualBasic.xml",
+ "build/.NETFramework/v4.8/Microsoft.VisualC.STLCLR.dll",
+ "build/.NETFramework/v4.8/Microsoft.VisualC.STLCLR.xml",
+ "build/.NETFramework/v4.8/Microsoft.VisualC.dll",
+ "build/.NETFramework/v4.8/Microsoft.VisualC.xml",
+ "build/.NETFramework/v4.8/PermissionSets/FullTrust.xml",
+ "build/.NETFramework/v4.8/PermissionSets/Internet.xml",
+ "build/.NETFramework/v4.8/PermissionSets/LocalIntranet.xml",
+ "build/.NETFramework/v4.8/PresentationBuildTasks.dll",
+ "build/.NETFramework/v4.8/PresentationBuildTasks.xml",
+ "build/.NETFramework/v4.8/PresentationCore.dll",
+ "build/.NETFramework/v4.8/PresentationCore.xml",
+ "build/.NETFramework/v4.8/PresentationFramework.Aero.dll",
+ "build/.NETFramework/v4.8/PresentationFramework.Aero.xml",
+ "build/.NETFramework/v4.8/PresentationFramework.Aero2.dll",
+ "build/.NETFramework/v4.8/PresentationFramework.Aero2.xml",
+ "build/.NETFramework/v4.8/PresentationFramework.AeroLite.dll",
+ "build/.NETFramework/v4.8/PresentationFramework.AeroLite.xml",
+ "build/.NETFramework/v4.8/PresentationFramework.Classic.dll",
+ "build/.NETFramework/v4.8/PresentationFramework.Classic.xml",
+ "build/.NETFramework/v4.8/PresentationFramework.Luna.dll",
+ "build/.NETFramework/v4.8/PresentationFramework.Luna.xml",
+ "build/.NETFramework/v4.8/PresentationFramework.Royale.dll",
+ "build/.NETFramework/v4.8/PresentationFramework.Royale.xml",
+ "build/.NETFramework/v4.8/PresentationFramework.dll",
+ "build/.NETFramework/v4.8/PresentationFramework.xml",
+ "build/.NETFramework/v4.8/ReachFramework.dll",
+ "build/.NETFramework/v4.8/ReachFramework.xml",
+ "build/.NETFramework/v4.8/RedistList/FrameworkList.xml",
+ "build/.NETFramework/v4.8/System.Activities.Core.Presentation.dll",
+ "build/.NETFramework/v4.8/System.Activities.Core.Presentation.xml",
+ "build/.NETFramework/v4.8/System.Activities.DurableInstancing.dll",
+ "build/.NETFramework/v4.8/System.Activities.DurableInstancing.xml",
+ "build/.NETFramework/v4.8/System.Activities.Presentation.dll",
+ "build/.NETFramework/v4.8/System.Activities.Presentation.xml",
+ "build/.NETFramework/v4.8/System.Activities.dll",
+ "build/.NETFramework/v4.8/System.Activities.xml",
+ "build/.NETFramework/v4.8/System.AddIn.Contract.dll",
+ "build/.NETFramework/v4.8/System.AddIn.Contract.xml",
+ "build/.NETFramework/v4.8/System.AddIn.dll",
+ "build/.NETFramework/v4.8/System.AddIn.xml",
+ "build/.NETFramework/v4.8/System.ComponentModel.Composition.Registration.dll",
+ "build/.NETFramework/v4.8/System.ComponentModel.Composition.Registration.xml",
+ "build/.NETFramework/v4.8/System.ComponentModel.Composition.dll",
+ "build/.NETFramework/v4.8/System.ComponentModel.Composition.xml",
+ "build/.NETFramework/v4.8/System.ComponentModel.DataAnnotations.dll",
+ "build/.NETFramework/v4.8/System.ComponentModel.DataAnnotations.xml",
+ "build/.NETFramework/v4.8/System.Configuration.Install.dll",
+ "build/.NETFramework/v4.8/System.Configuration.Install.xml",
+ "build/.NETFramework/v4.8/System.Configuration.dll",
+ "build/.NETFramework/v4.8/System.Configuration.xml",
+ "build/.NETFramework/v4.8/System.Core.dll",
+ "build/.NETFramework/v4.8/System.Core.xml",
+ "build/.NETFramework/v4.8/System.Data.DataSetExtensions.dll",
+ "build/.NETFramework/v4.8/System.Data.DataSetExtensions.xml",
+ "build/.NETFramework/v4.8/System.Data.Entity.Design.dll",
+ "build/.NETFramework/v4.8/System.Data.Entity.Design.xml",
+ "build/.NETFramework/v4.8/System.Data.Entity.dll",
+ "build/.NETFramework/v4.8/System.Data.Entity.xml",
+ "build/.NETFramework/v4.8/System.Data.Linq.dll",
+ "build/.NETFramework/v4.8/System.Data.Linq.xml",
+ "build/.NETFramework/v4.8/System.Data.OracleClient.dll",
+ "build/.NETFramework/v4.8/System.Data.OracleClient.xml",
+ "build/.NETFramework/v4.8/System.Data.Services.Client.dll",
+ "build/.NETFramework/v4.8/System.Data.Services.Client.xml",
+ "build/.NETFramework/v4.8/System.Data.Services.Design.dll",
+ "build/.NETFramework/v4.8/System.Data.Services.Design.xml",
+ "build/.NETFramework/v4.8/System.Data.Services.dll",
+ "build/.NETFramework/v4.8/System.Data.Services.xml",
+ "build/.NETFramework/v4.8/System.Data.SqlXml.dll",
+ "build/.NETFramework/v4.8/System.Data.SqlXml.xml",
+ "build/.NETFramework/v4.8/System.Data.dll",
+ "build/.NETFramework/v4.8/System.Data.xml",
+ "build/.NETFramework/v4.8/System.Deployment.dll",
+ "build/.NETFramework/v4.8/System.Deployment.xml",
+ "build/.NETFramework/v4.8/System.Design.dll",
+ "build/.NETFramework/v4.8/System.Design.xml",
+ "build/.NETFramework/v4.8/System.Device.dll",
+ "build/.NETFramework/v4.8/System.Device.xml",
+ "build/.NETFramework/v4.8/System.Diagnostics.Tracing.dll",
+ "build/.NETFramework/v4.8/System.Diagnostics.Tracing.xml",
+ "build/.NETFramework/v4.8/System.DirectoryServices.AccountManagement.dll",
+ "build/.NETFramework/v4.8/System.DirectoryServices.AccountManagement.xml",
+ "build/.NETFramework/v4.8/System.DirectoryServices.Protocols.dll",
+ "build/.NETFramework/v4.8/System.DirectoryServices.Protocols.xml",
+ "build/.NETFramework/v4.8/System.DirectoryServices.dll",
+ "build/.NETFramework/v4.8/System.DirectoryServices.xml",
+ "build/.NETFramework/v4.8/System.Drawing.Design.dll",
+ "build/.NETFramework/v4.8/System.Drawing.Design.xml",
+ "build/.NETFramework/v4.8/System.Drawing.dll",
+ "build/.NETFramework/v4.8/System.Drawing.xml",
+ "build/.NETFramework/v4.8/System.Dynamic.dll",
+ "build/.NETFramework/v4.8/System.EnterpriseServices.Thunk.dll",
+ "build/.NETFramework/v4.8/System.EnterpriseServices.Wrapper.dll",
+ "build/.NETFramework/v4.8/System.EnterpriseServices.dll",
+ "build/.NETFramework/v4.8/System.EnterpriseServices.xml",
+ "build/.NETFramework/v4.8/System.IO.Compression.FileSystem.dll",
+ "build/.NETFramework/v4.8/System.IO.Compression.FileSystem.xml",
+ "build/.NETFramework/v4.8/System.IO.Compression.dll",
+ "build/.NETFramework/v4.8/System.IO.Compression.xml",
+ "build/.NETFramework/v4.8/System.IO.Log.dll",
+ "build/.NETFramework/v4.8/System.IO.Log.xml",
+ "build/.NETFramework/v4.8/System.IdentityModel.Selectors.dll",
+ "build/.NETFramework/v4.8/System.IdentityModel.Selectors.xml",
+ "build/.NETFramework/v4.8/System.IdentityModel.Services.dll",
+ "build/.NETFramework/v4.8/System.IdentityModel.Services.xml",
+ "build/.NETFramework/v4.8/System.IdentityModel.dll",
+ "build/.NETFramework/v4.8/System.IdentityModel.xml",
+ "build/.NETFramework/v4.8/System.Linq.xml",
+ "build/.NETFramework/v4.8/System.Management.Instrumentation.dll",
+ "build/.NETFramework/v4.8/System.Management.Instrumentation.xml",
+ "build/.NETFramework/v4.8/System.Management.dll",
+ "build/.NETFramework/v4.8/System.Management.xml",
+ "build/.NETFramework/v4.8/System.Messaging.dll",
+ "build/.NETFramework/v4.8/System.Messaging.xml",
+ "build/.NETFramework/v4.8/System.Net.Http.WebRequest.dll",
+ "build/.NETFramework/v4.8/System.Net.Http.WebRequest.xml",
+ "build/.NETFramework/v4.8/System.Net.Http.dll",
+ "build/.NETFramework/v4.8/System.Net.Http.xml",
+ "build/.NETFramework/v4.8/System.Net.dll",
+ "build/.NETFramework/v4.8/System.Net.xml",
+ "build/.NETFramework/v4.8/System.Numerics.dll",
+ "build/.NETFramework/v4.8/System.Numerics.xml",
+ "build/.NETFramework/v4.8/System.Printing.dll",
+ "build/.NETFramework/v4.8/System.Printing.xml",
+ "build/.NETFramework/v4.8/System.Reflection.Context.dll",
+ "build/.NETFramework/v4.8/System.Reflection.Context.xml",
+ "build/.NETFramework/v4.8/System.Runtime.Caching.dll",
+ "build/.NETFramework/v4.8/System.Runtime.Caching.xml",
+ "build/.NETFramework/v4.8/System.Runtime.DurableInstancing.dll",
+ "build/.NETFramework/v4.8/System.Runtime.DurableInstancing.xml",
+ "build/.NETFramework/v4.8/System.Runtime.Remoting.dll",
+ "build/.NETFramework/v4.8/System.Runtime.Remoting.xml",
+ "build/.NETFramework/v4.8/System.Runtime.Serialization.Formatters.Soap.dll",
+ "build/.NETFramework/v4.8/System.Runtime.Serialization.Formatters.Soap.xml",
+ "build/.NETFramework/v4.8/System.Runtime.Serialization.dll",
+ "build/.NETFramework/v4.8/System.Runtime.Serialization.xml",
+ "build/.NETFramework/v4.8/System.Security.dll",
+ "build/.NETFramework/v4.8/System.Security.xml",
+ "build/.NETFramework/v4.8/System.ServiceModel.Activation.dll",
+ "build/.NETFramework/v4.8/System.ServiceModel.Activation.xml",
+ "build/.NETFramework/v4.8/System.ServiceModel.Activities.dll",
+ "build/.NETFramework/v4.8/System.ServiceModel.Activities.xml",
+ "build/.NETFramework/v4.8/System.ServiceModel.Channels.dll",
+ "build/.NETFramework/v4.8/System.ServiceModel.Channels.xml",
+ "build/.NETFramework/v4.8/System.ServiceModel.Discovery.dll",
+ "build/.NETFramework/v4.8/System.ServiceModel.Discovery.xml",
+ "build/.NETFramework/v4.8/System.ServiceModel.Routing.dll",
+ "build/.NETFramework/v4.8/System.ServiceModel.Routing.xml",
+ "build/.NETFramework/v4.8/System.ServiceModel.Web.dll",
+ "build/.NETFramework/v4.8/System.ServiceModel.Web.xml",
+ "build/.NETFramework/v4.8/System.ServiceModel.dll",
+ "build/.NETFramework/v4.8/System.ServiceModel.xml",
+ "build/.NETFramework/v4.8/System.ServiceProcess.dll",
+ "build/.NETFramework/v4.8/System.ServiceProcess.xml",
+ "build/.NETFramework/v4.8/System.Speech.dll",
+ "build/.NETFramework/v4.8/System.Speech.xml",
+ "build/.NETFramework/v4.8/System.Threading.Tasks.Dataflow.xml",
+ "build/.NETFramework/v4.8/System.Transactions.dll",
+ "build/.NETFramework/v4.8/System.Transactions.xml",
+ "build/.NETFramework/v4.8/System.Web.Abstractions.dll",
+ "build/.NETFramework/v4.8/System.Web.ApplicationServices.dll",
+ "build/.NETFramework/v4.8/System.Web.ApplicationServices.xml",
+ "build/.NETFramework/v4.8/System.Web.DataVisualization.Design.dll",
+ "build/.NETFramework/v4.8/System.Web.DataVisualization.dll",
+ "build/.NETFramework/v4.8/System.Web.DataVisualization.xml",
+ "build/.NETFramework/v4.8/System.Web.DynamicData.Design.dll",
+ "build/.NETFramework/v4.8/System.Web.DynamicData.Design.xml",
+ "build/.NETFramework/v4.8/System.Web.DynamicData.dll",
+ "build/.NETFramework/v4.8/System.Web.DynamicData.xml",
+ "build/.NETFramework/v4.8/System.Web.Entity.Design.dll",
+ "build/.NETFramework/v4.8/System.Web.Entity.Design.xml",
+ "build/.NETFramework/v4.8/System.Web.Entity.dll",
+ "build/.NETFramework/v4.8/System.Web.Entity.xml",
+ "build/.NETFramework/v4.8/System.Web.Extensions.Design.dll",
+ "build/.NETFramework/v4.8/System.Web.Extensions.Design.xml",
+ "build/.NETFramework/v4.8/System.Web.Extensions.dll",
+ "build/.NETFramework/v4.8/System.Web.Extensions.xml",
+ "build/.NETFramework/v4.8/System.Web.Mobile.dll",
+ "build/.NETFramework/v4.8/System.Web.Mobile.xml",
+ "build/.NETFramework/v4.8/System.Web.RegularExpressions.dll",
+ "build/.NETFramework/v4.8/System.Web.RegularExpressions.xml",
+ "build/.NETFramework/v4.8/System.Web.Routing.dll",
+ "build/.NETFramework/v4.8/System.Web.Services.dll",
+ "build/.NETFramework/v4.8/System.Web.Services.xml",
+ "build/.NETFramework/v4.8/System.Web.dll",
+ "build/.NETFramework/v4.8/System.Web.xml",
+ "build/.NETFramework/v4.8/System.Windows.Controls.Ribbon.dll",
+ "build/.NETFramework/v4.8/System.Windows.Controls.Ribbon.xml",
+ "build/.NETFramework/v4.8/System.Windows.Forms.DataVisualization.Design.dll",
+ "build/.NETFramework/v4.8/System.Windows.Forms.DataVisualization.dll",
+ "build/.NETFramework/v4.8/System.Windows.Forms.DataVisualization.xml",
+ "build/.NETFramework/v4.8/System.Windows.Forms.dll",
+ "build/.NETFramework/v4.8/System.Windows.Forms.xml",
+ "build/.NETFramework/v4.8/System.Windows.Input.Manipulations.dll",
+ "build/.NETFramework/v4.8/System.Windows.Input.Manipulations.xml",
+ "build/.NETFramework/v4.8/System.Windows.Presentation.dll",
+ "build/.NETFramework/v4.8/System.Windows.Presentation.xml",
+ "build/.NETFramework/v4.8/System.Windows.dll",
+ "build/.NETFramework/v4.8/System.Workflow.Activities.dll",
+ "build/.NETFramework/v4.8/System.Workflow.Activities.xml",
+ "build/.NETFramework/v4.8/System.Workflow.ComponentModel.dll",
+ "build/.NETFramework/v4.8/System.Workflow.ComponentModel.xml",
+ "build/.NETFramework/v4.8/System.Workflow.Runtime.dll",
+ "build/.NETFramework/v4.8/System.Workflow.Runtime.xml",
+ "build/.NETFramework/v4.8/System.WorkflowServices.dll",
+ "build/.NETFramework/v4.8/System.WorkflowServices.xml",
+ "build/.NETFramework/v4.8/System.Xaml.dll",
+ "build/.NETFramework/v4.8/System.Xaml.xml",
+ "build/.NETFramework/v4.8/System.Xml.Linq.dll",
+ "build/.NETFramework/v4.8/System.Xml.Linq.xml",
+ "build/.NETFramework/v4.8/System.Xml.Serialization.dll",
+ "build/.NETFramework/v4.8/System.Xml.dll",
+ "build/.NETFramework/v4.8/System.Xml.xml",
+ "build/.NETFramework/v4.8/System.dll",
+ "build/.NETFramework/v4.8/System.xml",
+ "build/.NETFramework/v4.8/UIAutomationClient.dll",
+ "build/.NETFramework/v4.8/UIAutomationClient.xml",
+ "build/.NETFramework/v4.8/UIAutomationClientsideProviders.dll",
+ "build/.NETFramework/v4.8/UIAutomationClientsideProviders.xml",
+ "build/.NETFramework/v4.8/UIAutomationProvider.dll",
+ "build/.NETFramework/v4.8/UIAutomationProvider.xml",
+ "build/.NETFramework/v4.8/UIAutomationTypes.dll",
+ "build/.NETFramework/v4.8/UIAutomationTypes.xml",
+ "build/.NETFramework/v4.8/WindowsBase.dll",
+ "build/.NETFramework/v4.8/WindowsBase.xml",
+ "build/.NETFramework/v4.8/WindowsFormsIntegration.dll",
+ "build/.NETFramework/v4.8/WindowsFormsIntegration.xml",
+ "build/.NETFramework/v4.8/XamlBuildTask.dll",
+ "build/.NETFramework/v4.8/XamlBuildTask.xml",
+ "build/.NETFramework/v4.8/mscorlib.dll",
+ "build/.NETFramework/v4.8/mscorlib.xml",
+ "build/.NETFramework/v4.8/namespaces.xml",
+ "build/.NETFramework/v4.8/sysglobl.dll",
+ "build/.NETFramework/v4.8/sysglobl.xml",
+ "build/Microsoft.NETFramework.ReferenceAssemblies.net48.targets",
+ "microsoft.netframework.referenceassemblies.net48.1.0.3.nupkg.sha512",
+ "microsoft.netframework.referenceassemblies.net48.nuspec"
+ ]
+ }
+ },
+ "projectFileDependencyGroups": {
+ ".NETFramework,Version=v4.8": [
+ "Microsoft.NETFramework.ReferenceAssemblies >= 1.0.3"
+ ]
+ },
+ "packageFolders": {
+ "C:\\Users\\Viper\\.nuget\\packages\\": {}
+ },
+ "project": {
+ "version": "1.0.2",
+ "restore": {
+ "projectUniqueName": "C:\\Users\\Viper\\Desktop\\Programme\\DeskCore-Source\\Setup\\DeskCoreSetup.csproj",
+ "projectName": "DeskCore-Setup",
+ "projectPath": "C:\\Users\\Viper\\Desktop\\Programme\\DeskCore-Source\\Setup\\DeskCoreSetup.csproj",
+ "packagesPath": "C:\\Users\\Viper\\.nuget\\packages\\",
+ "outputPath": "C:\\Users\\Viper\\Desktop\\Programme\\DeskCore-Source\\Setup\\obj\\",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "C:\\Users\\Viper\\AppData\\Roaming\\NuGet\\NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "net48"
+ ],
+ "sources": {
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net48": {
+ "targetAlias": "net48",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ },
+ "SdkAnalysisLevel": "10.0.100"
+ },
+ "frameworks": {
+ "net48": {
+ "targetAlias": "net48",
+ "dependencies": {
+ "Microsoft.NETFramework.ReferenceAssemblies": {
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[1.0.3, )",
+ "autoReferenced": true
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.112\\RuntimeIdentifierGraph.json"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Setup/obj/project.nuget.cache b/Setup/obj/project.nuget.cache
new file mode 100644
index 0000000..a234e14
--- /dev/null
+++ b/Setup/obj/project.nuget.cache
@@ -0,0 +1,11 @@
+{
+ "version": 2,
+ "dgSpecHash": "B0FFLxz3ggo=",
+ "success": true,
+ "projectFilePath": "C:\\Users\\Viper\\Desktop\\Programme\\DeskCore-Source\\Setup\\DeskCoreSetup.csproj",
+ "expectedPackageFiles": [
+ "C:\\Users\\Viper\\.nuget\\packages\\microsoft.netframework.referenceassemblies\\1.0.3\\microsoft.netframework.referenceassemblies.1.0.3.nupkg.sha512",
+ "C:\\Users\\Viper\\.nuget\\packages\\microsoft.netframework.referenceassemblies.net48\\1.0.3\\microsoft.netframework.referenceassemblies.net48.1.0.3.nupkg.sha512"
+ ],
+ "logs": []
+}
\ No newline at end of file
diff --git a/obj/Release/net9.0-windows/win-x64/DeskCore.GlobalUsings.g.cs b/obj/Release/net9.0-windows/win-x64/DeskCore.GlobalUsings.g.cs
new file mode 100644
index 0000000..4a15929
--- /dev/null
+++ b/obj/Release/net9.0-windows/win-x64/DeskCore.GlobalUsings.g.cs
@@ -0,0 +1,6 @@
+//
+global using System;
+global using System.Collections.Generic;
+global using System.Linq;
+global using System.Threading;
+global using System.Threading.Tasks;
diff --git a/obj/Release/net9.0-windows/win-x64/DeskCore.genruntimeconfig.cache b/obj/Release/net9.0-windows/win-x64/DeskCore.genruntimeconfig.cache
new file mode 100644
index 0000000..670a582
--- /dev/null
+++ b/obj/Release/net9.0-windows/win-x64/DeskCore.genruntimeconfig.cache
@@ -0,0 +1 @@
+e393b294a60eee746866f64f06eb177b2c8a0e4e745b4ad4e026dbb765aca8ce
diff --git a/obj/Release/net9.0-windows/win-x64/DeskCore_MarkupCompile.cache b/obj/Release/net9.0-windows/win-x64/DeskCore_MarkupCompile.cache
new file mode 100644
index 0000000..245f0e2
--- /dev/null
+++ b/obj/Release/net9.0-windows/win-x64/DeskCore_MarkupCompile.cache
@@ -0,0 +1,20 @@
+DeskCore
+
+
+winexe
+C#
+.cs
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\obj\Release\net9.0-windows\win-x64\
+DeskCore
+none
+false
+TRACE;RELEASE;NET;NET9_0;NETCOREAPP;WINDOWS;WINDOWS7_0;NET5_0_OR_GREATER;NET6_0_OR_GREATER;NET7_0_OR_GREATER;NET8_0_OR_GREATER;NET9_0_OR_GREATER;NETCOREAPP1_0_OR_GREATER;NETCOREAPP1_1_OR_GREATER;NETCOREAPP2_0_OR_GREATER;NETCOREAPP2_1_OR_GREATER;NETCOREAPP2_2_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER;WINDOWS7_0_OR_GREATER
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\App.xaml
+5-736700008
+
+30-272641797
+210-1563322103
+FenceWindow.xaml;MainWindow.xaml;Themes\Colors.Dark.xaml;Themes\Colors.Light.xaml;Themes\Controls.xaml;
+
+False
+
diff --git a/obj/Release/net9.0-windows/win-x64/FenceWindow.baml b/obj/Release/net9.0-windows/win-x64/FenceWindow.baml
new file mode 100644
index 0000000..de6d134
Binary files /dev/null and b/obj/Release/net9.0-windows/win-x64/FenceWindow.baml differ
diff --git a/obj/Release/net9.0-windows/win-x64/FenceWindow.g.cs b/obj/Release/net9.0-windows/win-x64/FenceWindow.g.cs
new file mode 100644
index 0000000..e114387
--- /dev/null
+++ b/obj/Release/net9.0-windows/win-x64/FenceWindow.g.cs
@@ -0,0 +1,305 @@
+#pragma checksum "..\..\..\..\FenceWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "0AD23B4AEE9336B299C37B05CB51A972E9704879"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Controls.Ribbon;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Forms.Integration;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace DeskCore {
+
+
+ ///
+ /// FenceWindow
+ ///
+ public partial class FenceWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 11 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Shell.WindowChrome Chrome;
+
+ #line default
+ #line hidden
+
+
+ #line 21 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border Root;
+
+ #line default
+ #line hidden
+
+
+ #line 22 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.DockPanel Content_;
+
+ #line default
+ #line hidden
+
+
+ #line 24 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid TitleBar;
+
+ #line default
+ #line hidden
+
+
+ #line 31 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel TabStrip;
+
+ #line default
+ #line hidden
+
+
+ #line 32 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock LockGlyph;
+
+ #line default
+ #line hidden
+
+
+ #line 35 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock CountText;
+
+ #line default
+ #line hidden
+
+
+ #line 36 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button MenuButton;
+
+ #line default
+ #line hidden
+
+
+ #line 40 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ContextMenu FenceMenu;
+
+ #line default
+ #line hidden
+
+
+ #line 46 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.DockPanel PortalBar;
+
+ #line default
+ #line hidden
+
+
+ #line 50 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock PortalPath;
+
+ #line default
+ #line hidden
+
+
+ #line 54 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid Body;
+
+ #line default
+ #line hidden
+
+
+ #line 55 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ListBox Items;
+
+ #line default
+ #line hidden
+
+
+ #line 61 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ContextMenu ItemMenu;
+
+ #line default
+ #line hidden
+
+
+ #line 86 "..\..\..\..\FenceWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock EmptyText;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.12.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/DeskCore;component/fencewindow.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\..\FenceWindow.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.12.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+ this.Chrome = ((System.Windows.Shell.WindowChrome)(target));
+ return;
+ case 2:
+ this.Root = ((System.Windows.Controls.Border)(target));
+ return;
+ case 3:
+ this.Content_ = ((System.Windows.Controls.DockPanel)(target));
+ return;
+ case 4:
+ this.TitleBar = ((System.Windows.Controls.Grid)(target));
+
+ #line 24 "..\..\..\..\FenceWindow.xaml"
+ this.TitleBar.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.TitleBar_MouseLeftButtonDown);
+
+ #line default
+ #line hidden
+ return;
+ case 5:
+ this.TabStrip = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 6:
+ this.LockGlyph = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 7:
+ this.CountText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 8:
+ this.MenuButton = ((System.Windows.Controls.Button)(target));
+
+ #line 37 "..\..\..\..\FenceWindow.xaml"
+ this.MenuButton.Click += new System.Windows.RoutedEventHandler(this.MenuButton_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 9:
+ this.FenceMenu = ((System.Windows.Controls.ContextMenu)(target));
+ return;
+ case 10:
+ this.PortalBar = ((System.Windows.Controls.DockPanel)(target));
+ return;
+ case 11:
+
+ #line 47 "..\..\..\..\FenceWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.PortalUp_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 12:
+ this.PortalPath = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 13:
+ this.Body = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 14:
+ this.Items = ((System.Windows.Controls.ListBox)(target));
+
+ #line 56 "..\..\..\..\FenceWindow.xaml"
+ this.Items.DragOver += new System.Windows.DragEventHandler(this.Items_DragOver);
+
+ #line default
+ #line hidden
+
+ #line 56 "..\..\..\..\FenceWindow.xaml"
+ this.Items.Drop += new System.Windows.DragEventHandler(this.Items_Drop);
+
+ #line default
+ #line hidden
+
+ #line 57 "..\..\..\..\FenceWindow.xaml"
+ this.Items.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(this.Items_MouseDoubleClick);
+
+ #line default
+ #line hidden
+
+ #line 57 "..\..\..\..\FenceWindow.xaml"
+ this.Items.KeyDown += new System.Windows.Input.KeyEventHandler(this.Items_KeyDown);
+
+ #line default
+ #line hidden
+
+ #line 58 "..\..\..\..\FenceWindow.xaml"
+ this.Items.PreviewMouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Items_PreviewMouseLeftButtonDown);
+
+ #line default
+ #line hidden
+
+ #line 58 "..\..\..\..\FenceWindow.xaml"
+ this.Items.PreviewMouseMove += new System.Windows.Input.MouseEventHandler(this.Items_PreviewMouseMove);
+
+ #line default
+ #line hidden
+
+ #line 59 "..\..\..\..\FenceWindow.xaml"
+ this.Items.ContextMenuOpening += new System.Windows.Controls.ContextMenuEventHandler(this.Items_ContextMenuOpening);
+
+ #line default
+ #line hidden
+ return;
+ case 15:
+ this.ItemMenu = ((System.Windows.Controls.ContextMenu)(target));
+ return;
+ case 16:
+ this.EmptyText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/obj/Release/net9.0-windows/win-x64/MainWindow.baml b/obj/Release/net9.0-windows/win-x64/MainWindow.baml
new file mode 100644
index 0000000..e661d70
Binary files /dev/null and b/obj/Release/net9.0-windows/win-x64/MainWindow.baml differ
diff --git a/obj/Release/net9.0-windows/win-x64/MainWindow.g.cs b/obj/Release/net9.0-windows/win-x64/MainWindow.g.cs
new file mode 100644
index 0000000..0c525b1
--- /dev/null
+++ b/obj/Release/net9.0-windows/win-x64/MainWindow.g.cs
@@ -0,0 +1,1697 @@
+#pragma checksum "..\..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "1FB67593B68374B113272765CC962A892CFA4924"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Controls.Ribbon;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Forms.Integration;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace DeskCore {
+
+
+ ///
+ /// MainWindow
+ ///
+ public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector, System.Windows.Markup.IStyleConnector {
+
+
+ #line 195 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid RootGrid;
+
+ #line default
+ #line hidden
+
+
+ #line 212 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button ThemeButton;
+
+ #line default
+ #line hidden
+
+
+ #line 215 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ContextMenu ThemeMenu;
+
+ #line default
+ #line hidden
+
+
+ #line 220 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button MaxButton;
+
+ #line default
+ #line hidden
+
+
+ #line 229 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ListBox DesktopNav;
+
+ #line default
+ #line hidden
+
+
+ #line 251 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ListBox SettingsNav;
+
+ #line default
+ #line hidden
+
+
+ #line 273 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ListBox LaunchList;
+
+ #line default
+ #line hidden
+
+
+ #line 278 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ContextMenu LaunchMenu;
+
+ #line default
+ #line hidden
+
+
+ #line 312 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock NoLaunchGroupsText;
+
+ #line default
+ #line hidden
+
+
+ #line 319 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ListBox CategoryList;
+
+ #line default
+ #line hidden
+
+
+ #line 326 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ContextMenu CategoryMenu;
+
+ #line default
+ #line hidden
+
+
+ #line 329 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock NoCategoriesText;
+
+ #line default
+ #line hidden
+
+
+ #line 339 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.DockPanel BrowseView;
+
+ #line default
+ #line hidden
+
+
+ #line 348 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock HeaderText;
+
+ #line default
+ #line hidden
+
+
+ #line 350 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock SubText;
+
+ #line default
+ #line hidden
+
+
+ #line 353 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox SearchBox;
+
+ #line default
+ #line hidden
+
+
+ #line 357 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock SearchPlaceholder;
+
+ #line default
+ #line hidden
+
+
+ #line 359 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button ClearSearchBtn;
+
+ #line default
+ #line hidden
+
+
+ #line 365 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button UndoButton;
+
+ #line default
+ #line hidden
+
+
+ #line 369 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button ViewButton;
+
+ #line default
+ #line hidden
+
+
+ #line 370 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock ViewGlyph;
+
+ #line default
+ #line hidden
+
+
+ #line 372 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ContextMenu ViewMenu;
+
+ #line default
+ #line hidden
+
+
+ #line 382 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel GroupCommands;
+
+ #line default
+ #line hidden
+
+
+ #line 411 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel CategoryCommands;
+
+ #line default
+ #line hidden
+
+
+ #line 418 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button FenceToggleButton;
+
+ #line default
+ #line hidden
+
+
+ #line 421 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock FenceToggleText;
+
+ #line default
+ #line hidden
+
+
+ #line 439 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border UpdateBar;
+
+ #line default
+ #line hidden
+
+
+ #line 445 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button UpdateNowButton;
+
+ #line default
+ #line hidden
+
+
+ #line 450 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock UpdateText;
+
+ #line default
+ #line hidden
+
+
+ #line 455 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border InfoBar;
+
+ #line default
+ #line hidden
+
+
+ #line 470 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid ListHeader;
+
+ #line default
+ #line hidden
+
+
+ #line 483 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ListBox IconList;
+
+ #line default
+ #line hidden
+
+
+ #line 491 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ContextMenu IconMenu;
+
+ #line default
+ #line hidden
+
+
+ #line 496 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel EmptyState;
+
+ #line default
+ #line hidden
+
+
+ #line 498 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock EmptyGlyph;
+
+ #line default
+ #line hidden
+
+
+ #line 500 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock EmptyTitle;
+
+ #line default
+ #line hidden
+
+
+ #line 502 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock EmptyText;
+
+ #line default
+ #line hidden
+
+
+ #line 509 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ScrollViewer SettingsView;
+
+ #line default
+ #line hidden
+
+
+ #line 518 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton DesignLight;
+
+ #line default
+ #line hidden
+
+
+ #line 519 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton DesignDark;
+
+ #line default
+ #line hidden
+
+
+ #line 520 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton DesignSystem;
+
+ #line default
+ #line hidden
+
+
+ #line 534 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton ViewSmall;
+
+ #line default
+ #line hidden
+
+
+ #line 535 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton ViewMedium;
+
+ #line default
+ #line hidden
+
+
+ #line 536 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton ViewLarge;
+
+ #line default
+ #line hidden
+
+
+ #line 537 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton ViewList;
+
+ #line default
+ #line hidden
+
+
+ #line 551 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox AutostartToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 562 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox TrayToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 573 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox CloseToTrayToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 585 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox HotkeyBox;
+
+ #line default
+ #line hidden
+
+
+ #line 587 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox HotkeyToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 592 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock HotkeyHint;
+
+ #line default
+ #line hidden
+
+
+ #line 601 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox AutoSortToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 612 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox AutoRemoveToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 623 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox DeadShortcutsToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 637 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ItemsControl RulesList;
+
+ #line default
+ #line hidden
+
+
+ #line 638 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock NoRulesText;
+
+ #line default
+ #line hidden
+
+
+ #line 654 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox FencesToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 681 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox DrawFencesToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 702 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock PagesHint;
+
+ #line default
+ #line hidden
+
+
+ #line 706 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ItemsControl PageList;
+
+ #line default
+ #line hidden
+
+
+ #line 728 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox PageWheelBox;
+
+ #line default
+ #line hidden
+
+
+ #line 741 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.WrapPanel DesktopTintSwatches;
+
+ #line default
+ #line hidden
+
+
+ #line 744 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Slider DesktopTintStrength;
+
+ #line default
+ #line hidden
+
+
+ #line 751 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox QuickHideToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 762 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox PeekToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 766 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock PeekHint;
+
+ #line default
+ #line hidden
+
+
+ #line 773 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox ChameleonToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 798 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ItemsControl SnapshotList;
+
+ #line default
+ #line hidden
+
+
+ #line 839 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock BackupHint;
+
+ #line default
+ #line hidden
+
+
+ #line 848 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button CheckUpdateButton;
+
+ #line default
+ #line hidden
+
+
+ #line 849 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox AutoUpdateToggle;
+
+ #line default
+ #line hidden
+
+
+ #line 854 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock UpdateStatusText;
+
+ #line default
+ #line hidden
+
+
+ #line 875 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock AboutTitle;
+
+ #line default
+ #line hidden
+
+
+ #line 876 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock AboutCopyright;
+
+ #line default
+ #line hidden
+
+
+ #line 877 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock StoragePathText;
+
+ #line default
+ #line hidden
+
+
+ #line 892 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border Toast;
+
+ #line default
+ #line hidden
+
+
+ #line 897 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Media.TranslateTransform ToastShift;
+
+ #line default
+ #line hidden
+
+
+ #line 900 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border ToastBadge;
+
+ #line default
+ #line hidden
+
+
+ #line 901 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock ToastGlyph;
+
+ #line default
+ #line hidden
+
+
+ #line 904 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock ToastText;
+
+ #line default
+ #line hidden
+
+
+ #line 905 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button ToastUndo;
+
+ #line default
+ #line hidden
+
+
+ #line 913 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border DimOverlay;
+
+ #line default
+ #line hidden
+
+
+ #line 916 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid ProgressOverlay;
+
+ #line default
+ #line hidden
+
+
+ #line 921 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock ProgressTitle;
+
+ #line default
+ #line hidden
+
+
+ #line 922 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock ProgressDetail;
+
+ #line default
+ #line hidden
+
+
+ #line 923 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border ProgressTrack;
+
+ #line default
+ #line hidden
+
+
+ #line 924 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Border ProgressFill;
+
+ #line default
+ #line hidden
+
+
+ #line 927 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button ProgressCancel;
+
+ #line default
+ #line hidden
+
+
+ #line 928 "..\..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock ProgressStats;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.12.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/DeskCore;component/mainwindow.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\..\MainWindow.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.12.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 5:
+ this.RootGrid = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 6:
+ this.ThemeButton = ((System.Windows.Controls.Button)(target));
+
+ #line 212 "..\..\..\..\MainWindow.xaml"
+ this.ThemeButton.Click += new System.Windows.RoutedEventHandler(this.ThemeButton_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 7:
+ this.ThemeMenu = ((System.Windows.Controls.ContextMenu)(target));
+ return;
+ case 8:
+
+ #line 218 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Minimize_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 9:
+ this.MaxButton = ((System.Windows.Controls.Button)(target));
+
+ #line 220 "..\..\..\..\MainWindow.xaml"
+ this.MaxButton.Click += new System.Windows.RoutedEventHandler(this.Maximize_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 10:
+
+ #line 222 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Close_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 11:
+ this.DesktopNav = ((System.Windows.Controls.ListBox)(target));
+
+ #line 231 "..\..\..\..\MainWindow.xaml"
+ this.DesktopNav.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.Nav_SelectionChanged);
+
+ #line default
+ #line hidden
+
+ #line 232 "..\..\..\..\MainWindow.xaml"
+ this.DesktopNav.DragOver += new System.Windows.DragEventHandler(this.Nav_DragOver);
+
+ #line default
+ #line hidden
+
+ #line 232 "..\..\..\..\MainWindow.xaml"
+ this.DesktopNav.DragLeave += new System.Windows.DragEventHandler(this.Nav_DragLeave);
+
+ #line default
+ #line hidden
+
+ #line 232 "..\..\..\..\MainWindow.xaml"
+ this.DesktopNav.Drop += new System.Windows.DragEventHandler(this.Nav_Drop);
+
+ #line default
+ #line hidden
+ return;
+ case 12:
+
+ #line 238 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.NewCategory_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 13:
+
+ #line 244 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.NewCategory_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 14:
+ this.SettingsNav = ((System.Windows.Controls.ListBox)(target));
+
+ #line 252 "..\..\..\..\MainWindow.xaml"
+ this.SettingsNav.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.SettingsNav_SelectionChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 15:
+
+ #line 268 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.NewLaunchGroup_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 16:
+ this.LaunchList = ((System.Windows.Controls.ListBox)(target));
+
+ #line 274 "..\..\..\..\MainWindow.xaml"
+ this.LaunchList.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.Nav_SelectionChanged);
+
+ #line default
+ #line hidden
+
+ #line 275 "..\..\..\..\MainWindow.xaml"
+ this.LaunchList.DragOver += new System.Windows.DragEventHandler(this.LaunchList_DragOver);
+
+ #line default
+ #line hidden
+
+ #line 275 "..\..\..\..\MainWindow.xaml"
+ this.LaunchList.DragLeave += new System.Windows.DragEventHandler(this.Nav_DragLeave);
+
+ #line default
+ #line hidden
+
+ #line 275 "..\..\..\..\MainWindow.xaml"
+ this.LaunchList.Drop += new System.Windows.DragEventHandler(this.LaunchList_Drop);
+
+ #line default
+ #line hidden
+
+ #line 276 "..\..\..\..\MainWindow.xaml"
+ this.LaunchList.ContextMenuOpening += new System.Windows.Controls.ContextMenuEventHandler(this.LaunchList_ContextMenuOpening);
+
+ #line default
+ #line hidden
+ return;
+ case 17:
+ this.LaunchMenu = ((System.Windows.Controls.ContextMenu)(target));
+ return;
+ case 19:
+ this.NoLaunchGroupsText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 20:
+ this.CategoryList = ((System.Windows.Controls.ListBox)(target));
+
+ #line 321 "..\..\..\..\MainWindow.xaml"
+ this.CategoryList.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.Nav_SelectionChanged);
+
+ #line default
+ #line hidden
+
+ #line 322 "..\..\..\..\MainWindow.xaml"
+ this.CategoryList.PreviewMouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.CategoryList_PreviewMouseLeftButtonDown);
+
+ #line default
+ #line hidden
+
+ #line 322 "..\..\..\..\MainWindow.xaml"
+ this.CategoryList.PreviewMouseMove += new System.Windows.Input.MouseEventHandler(this.CategoryList_PreviewMouseMove);
+
+ #line default
+ #line hidden
+
+ #line 323 "..\..\..\..\MainWindow.xaml"
+ this.CategoryList.ContextMenuOpening += new System.Windows.Controls.ContextMenuEventHandler(this.CategoryList_ContextMenuOpening);
+
+ #line default
+ #line hidden
+
+ #line 324 "..\..\..\..\MainWindow.xaml"
+ this.CategoryList.DragOver += new System.Windows.DragEventHandler(this.Nav_DragOver);
+
+ #line default
+ #line hidden
+
+ #line 324 "..\..\..\..\MainWindow.xaml"
+ this.CategoryList.DragLeave += new System.Windows.DragEventHandler(this.Nav_DragLeave);
+
+ #line default
+ #line hidden
+
+ #line 324 "..\..\..\..\MainWindow.xaml"
+ this.CategoryList.Drop += new System.Windows.DragEventHandler(this.Nav_Drop);
+
+ #line default
+ #line hidden
+ return;
+ case 21:
+ this.CategoryMenu = ((System.Windows.Controls.ContextMenu)(target));
+ return;
+ case 22:
+ this.NoCategoriesText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 23:
+ this.BrowseView = ((System.Windows.Controls.DockPanel)(target));
+ return;
+ case 24:
+ this.HeaderText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 25:
+ this.SubText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 26:
+ this.SearchBox = ((System.Windows.Controls.TextBox)(target));
+
+ #line 353 "..\..\..\..\MainWindow.xaml"
+ this.SearchBox.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.SearchBox_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 27:
+ this.SearchPlaceholder = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 28:
+ this.ClearSearchBtn = ((System.Windows.Controls.Button)(target));
+
+ #line 360 "..\..\..\..\MainWindow.xaml"
+ this.ClearSearchBtn.Click += new System.Windows.RoutedEventHandler(this.ClearSearch_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 29:
+ this.UndoButton = ((System.Windows.Controls.Button)(target));
+
+ #line 365 "..\..\..\..\MainWindow.xaml"
+ this.UndoButton.Click += new System.Windows.RoutedEventHandler(this.Undo_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 30:
+ this.ViewButton = ((System.Windows.Controls.Button)(target));
+
+ #line 369 "..\..\..\..\MainWindow.xaml"
+ this.ViewButton.Click += new System.Windows.RoutedEventHandler(this.ViewButton_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 31:
+ this.ViewGlyph = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 32:
+ this.ViewMenu = ((System.Windows.Controls.ContextMenu)(target));
+ return;
+ case 33:
+
+ #line 375 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Refresh_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 34:
+ this.GroupCommands = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 35:
+
+ #line 383 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.LaunchCurrentGroup_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 36:
+
+ #line 389 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.EditLaunchGroup_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 37:
+
+ #line 395 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.LaunchGroupShortcut_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 38:
+
+ #line 402 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.DeleteLaunchGroup_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 39:
+ this.CategoryCommands = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 40:
+
+ #line 412 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.EditCategory_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 41:
+ this.FenceToggleButton = ((System.Windows.Controls.Button)(target));
+
+ #line 418 "..\..\..\..\MainWindow.xaml"
+ this.FenceToggleButton.Click += new System.Windows.RoutedEventHandler(this.FenceToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 42:
+ this.FenceToggleText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 43:
+
+ #line 424 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OpenFolder_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 44:
+
+ #line 430 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.DeleteCategory_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 45:
+ this.UpdateBar = ((System.Windows.Controls.Border)(target));
+ return;
+ case 46:
+ this.UpdateNowButton = ((System.Windows.Controls.Button)(target));
+
+ #line 445 "..\..\..\..\MainWindow.xaml"
+ this.UpdateNowButton.Click += new System.Windows.RoutedEventHandler(this.UpdateNow_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 47:
+
+ #line 446 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.UpdateLater_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 48:
+
+ #line 447 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.UpdateSkip_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 49:
+ this.UpdateText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 50:
+ this.InfoBar = ((System.Windows.Controls.Border)(target));
+ return;
+ case 51:
+ this.ListHeader = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 52:
+ this.IconList = ((System.Windows.Controls.ListBox)(target));
+
+ #line 486 "..\..\..\..\MainWindow.xaml"
+ this.IconList.Drop += new System.Windows.DragEventHandler(this.IconList_Drop);
+
+ #line default
+ #line hidden
+
+ #line 486 "..\..\..\..\MainWindow.xaml"
+ this.IconList.DragOver += new System.Windows.DragEventHandler(this.IconList_DragOver);
+
+ #line default
+ #line hidden
+
+ #line 487 "..\..\..\..\MainWindow.xaml"
+ this.IconList.PreviewMouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.IconList_PreviewMouseLeftButtonDown);
+
+ #line default
+ #line hidden
+
+ #line 487 "..\..\..\..\MainWindow.xaml"
+ this.IconList.PreviewMouseMove += new System.Windows.Input.MouseEventHandler(this.IconList_PreviewMouseMove);
+
+ #line default
+ #line hidden
+
+ #line 488 "..\..\..\..\MainWindow.xaml"
+ this.IconList.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(this.IconList_MouseDoubleClick);
+
+ #line default
+ #line hidden
+
+ #line 488 "..\..\..\..\MainWindow.xaml"
+ this.IconList.KeyDown += new System.Windows.Input.KeyEventHandler(this.IconList_KeyDown);
+
+ #line default
+ #line hidden
+
+ #line 489 "..\..\..\..\MainWindow.xaml"
+ this.IconList.ContextMenuOpening += new System.Windows.Controls.ContextMenuEventHandler(this.IconList_ContextMenuOpening);
+
+ #line default
+ #line hidden
+ return;
+ case 53:
+ this.IconMenu = ((System.Windows.Controls.ContextMenu)(target));
+ return;
+ case 54:
+ this.EmptyState = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 55:
+ this.EmptyGlyph = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 56:
+ this.EmptyTitle = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 57:
+ this.EmptyText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 58:
+ this.SettingsView = ((System.Windows.Controls.ScrollViewer)(target));
+ return;
+ case 59:
+ this.DesignLight = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 518 "..\..\..\..\MainWindow.xaml"
+ this.DesignLight.Checked += new System.Windows.RoutedEventHandler(this.Design_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 60:
+ this.DesignDark = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 519 "..\..\..\..\MainWindow.xaml"
+ this.DesignDark.Checked += new System.Windows.RoutedEventHandler(this.Design_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 61:
+ this.DesignSystem = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 520 "..\..\..\..\MainWindow.xaml"
+ this.DesignSystem.Checked += new System.Windows.RoutedEventHandler(this.Design_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 62:
+ this.ViewSmall = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 534 "..\..\..\..\MainWindow.xaml"
+ this.ViewSmall.Checked += new System.Windows.RoutedEventHandler(this.View_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 63:
+ this.ViewMedium = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 535 "..\..\..\..\MainWindow.xaml"
+ this.ViewMedium.Checked += new System.Windows.RoutedEventHandler(this.View_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 64:
+ this.ViewLarge = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 536 "..\..\..\..\MainWindow.xaml"
+ this.ViewLarge.Checked += new System.Windows.RoutedEventHandler(this.View_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 65:
+ this.ViewList = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 537 "..\..\..\..\MainWindow.xaml"
+ this.ViewList.Checked += new System.Windows.RoutedEventHandler(this.View_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 66:
+ this.AutostartToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 551 "..\..\..\..\MainWindow.xaml"
+ this.AutostartToggle.Click += new System.Windows.RoutedEventHandler(this.AutostartToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 67:
+ this.TrayToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 562 "..\..\..\..\MainWindow.xaml"
+ this.TrayToggle.Click += new System.Windows.RoutedEventHandler(this.TrayToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 68:
+ this.CloseToTrayToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 573 "..\..\..\..\MainWindow.xaml"
+ this.CloseToTrayToggle.Click += new System.Windows.RoutedEventHandler(this.CloseToTrayToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 69:
+ this.HotkeyBox = ((System.Windows.Controls.TextBox)(target));
+
+ #line 586 "..\..\..\..\MainWindow.xaml"
+ this.HotkeyBox.PreviewKeyDown += new System.Windows.Input.KeyEventHandler(this.HotkeyBox_PreviewKeyDown);
+
+ #line default
+ #line hidden
+ return;
+ case 70:
+ this.HotkeyToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 587 "..\..\..\..\MainWindow.xaml"
+ this.HotkeyToggle.Click += new System.Windows.RoutedEventHandler(this.HotkeyToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 71:
+ this.HotkeyHint = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 72:
+ this.AutoSortToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 601 "..\..\..\..\MainWindow.xaml"
+ this.AutoSortToggle.Click += new System.Windows.RoutedEventHandler(this.AutoSortToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 73:
+ this.AutoRemoveToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 612 "..\..\..\..\MainWindow.xaml"
+ this.AutoRemoveToggle.Click += new System.Windows.RoutedEventHandler(this.AutoRemoveToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 74:
+ this.DeadShortcutsToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 623 "..\..\..\..\MainWindow.xaml"
+ this.DeadShortcutsToggle.Click += new System.Windows.RoutedEventHandler(this.DeadShortcutsToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 75:
+ this.RulesList = ((System.Windows.Controls.ItemsControl)(target));
+ return;
+ case 76:
+ this.NoRulesText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 77:
+
+ #line 640 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.AddRule_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 78:
+
+ #line 646 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ApplyRulesNow_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 79:
+ this.FencesToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 654 "..\..\..\..\MainWindow.xaml"
+ this.FencesToggle.Click += new System.Windows.RoutedEventHandler(this.FencesToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 80:
+
+ #line 665 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.AddPortal_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 81:
+ this.DrawFencesToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 681 "..\..\..\..\MainWindow.xaml"
+ this.DrawFencesToggle.Click += new System.Windows.RoutedEventHandler(this.DrawFencesToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 82:
+
+ #line 693 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.AddPage_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 83:
+ this.PagesHint = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 84:
+ this.PageList = ((System.Windows.Controls.ItemsControl)(target));
+ return;
+ case 88:
+ this.PageWheelBox = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 728 "..\..\..\..\MainWindow.xaml"
+ this.PageWheelBox.Click += new System.Windows.RoutedEventHandler(this.PageWheel_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 89:
+ this.DesktopTintSwatches = ((System.Windows.Controls.WrapPanel)(target));
+ return;
+ case 90:
+ this.DesktopTintStrength = ((System.Windows.Controls.Slider)(target));
+
+ #line 745 "..\..\..\..\MainWindow.xaml"
+ this.DesktopTintStrength.ValueChanged += new System.Windows.RoutedPropertyChangedEventHandler(this.DesktopTintStrength_ValueChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 91:
+ this.QuickHideToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 751 "..\..\..\..\MainWindow.xaml"
+ this.QuickHideToggle.Click += new System.Windows.RoutedEventHandler(this.QuickHideToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 92:
+ this.PeekToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 762 "..\..\..\..\MainWindow.xaml"
+ this.PeekToggle.Click += new System.Windows.RoutedEventHandler(this.PeekToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 93:
+ this.PeekHint = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 94:
+ this.ChameleonToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 773 "..\..\..\..\MainWindow.xaml"
+ this.ChameleonToggle.Click += new System.Windows.RoutedEventHandler(this.ChameleonToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 95:
+
+ #line 785 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SaveSnapshot_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 96:
+ this.SnapshotList = ((System.Windows.Controls.ItemsControl)(target));
+ return;
+ case 99:
+
+ #line 823 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Export_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 100:
+
+ #line 829 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Import_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 101:
+ this.BackupHint = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 102:
+ this.CheckUpdateButton = ((System.Windows.Controls.Button)(target));
+
+ #line 848 "..\..\..\..\MainWindow.xaml"
+ this.CheckUpdateButton.Click += new System.Windows.RoutedEventHandler(this.CheckUpdate_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 103:
+ this.AutoUpdateToggle = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 849 "..\..\..\..\MainWindow.xaml"
+ this.AutoUpdateToggle.Click += new System.Windows.RoutedEventHandler(this.AutoUpdateToggle_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 104:
+ this.UpdateStatusText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 105:
+
+ #line 864 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.License_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 106:
+
+ #line 865 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OpenStorage_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 107:
+
+ #line 866 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Quit_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 108:
+ this.AboutTitle = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 109:
+ this.AboutCopyright = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 110:
+ this.StoragePathText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 111:
+ this.Toast = ((System.Windows.Controls.Border)(target));
+ return;
+ case 112:
+ this.ToastShift = ((System.Windows.Media.TranslateTransform)(target));
+ return;
+ case 113:
+ this.ToastBadge = ((System.Windows.Controls.Border)(target));
+ return;
+ case 114:
+ this.ToastGlyph = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 115:
+ this.ToastText = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 116:
+ this.ToastUndo = ((System.Windows.Controls.Button)(target));
+
+ #line 906 "..\..\..\..\MainWindow.xaml"
+ this.ToastUndo.Click += new System.Windows.RoutedEventHandler(this.Undo_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 117:
+ this.DimOverlay = ((System.Windows.Controls.Border)(target));
+ return;
+ case 118:
+ this.ProgressOverlay = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 119:
+ this.ProgressTitle = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 120:
+ this.ProgressDetail = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 121:
+ this.ProgressTrack = ((System.Windows.Controls.Border)(target));
+ return;
+ case 122:
+ this.ProgressFill = ((System.Windows.Controls.Border)(target));
+ return;
+ case 123:
+ this.ProgressCancel = ((System.Windows.Controls.Button)(target));
+
+ #line 927 "..\..\..\..\MainWindow.xaml"
+ this.ProgressCancel.Click += new System.Windows.RoutedEventHandler(this.ProgressCancel_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 124:
+ this.ProgressStats = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.12.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ void System.Windows.Markup.IStyleConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 169 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.RuleKind_Click);
+
+ #line default
+ #line hidden
+ break;
+ case 2:
+
+ #line 177 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.TextBox)(target)).LostFocus += new System.Windows.RoutedEventHandler(this.RuleText_LostFocus);
+
+ #line default
+ #line hidden
+ break;
+ case 3:
+
+ #line 180 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.RuleCategory_Click);
+
+ #line default
+ #line hidden
+ break;
+ case 4:
+
+ #line 187 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.RuleDelete_Click);
+
+ #line default
+ #line hidden
+ break;
+ case 18:
+
+ #line 304 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.LaunchGroupPlay_Click);
+
+ #line default
+ #line hidden
+ break;
+ case 85:
+
+ #line 711 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ShowPage_Click);
+
+ #line default
+ #line hidden
+ break;
+ case 86:
+
+ #line 712 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.RenamePage_Click);
+
+ #line default
+ #line hidden
+ break;
+ case 87:
+
+ #line 715 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.DeletePage_Click);
+
+ #line default
+ #line hidden
+ break;
+ case 97:
+
+ #line 803 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.RestoreSnapshot_Click);
+
+ #line default
+ #line hidden
+ break;
+ case 98:
+
+ #line 804 "..\..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.DeleteSnapshot_Click);
+
+ #line default
+ #line hidden
+ break;
+ }
+ }
+ }
+}
+
diff --git a/obj/Release/net9.0-windows/win-x64/PublishOutputs.706123076a.txt b/obj/Release/net9.0-windows/win-x64/PublishOutputs.706123076a.txt
new file mode 100644
index 0000000..3cc1eb1
--- /dev/null
+++ b/obj/Release/net9.0-windows/win-x64/PublishOutputs.706123076a.txt
@@ -0,0 +1,2 @@
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\artifacts\app\LICENSE.txt
+C:\Users\Viper\Desktop\Programme\DeskCore-Source\artifacts\app\DeskCore.exe
diff --git a/obj/Release/net9.0-windows/win-x64/Themes/Colors.Dark.baml b/obj/Release/net9.0-windows/win-x64/Themes/Colors.Dark.baml
new file mode 100644
index 0000000..5914471
Binary files /dev/null and b/obj/Release/net9.0-windows/win-x64/Themes/Colors.Dark.baml differ
diff --git a/obj/Release/net9.0-windows/win-x64/Themes/Colors.Light.baml b/obj/Release/net9.0-windows/win-x64/Themes/Colors.Light.baml
new file mode 100644
index 0000000..2d4d04b
Binary files /dev/null and b/obj/Release/net9.0-windows/win-x64/Themes/Colors.Light.baml differ
diff --git a/obj/Release/net9.0-windows/win-x64/Themes/Controls.baml b/obj/Release/net9.0-windows/win-x64/Themes/Controls.baml
new file mode 100644
index 0000000..dd3b1fb
Binary files /dev/null and b/obj/Release/net9.0-windows/win-x64/Themes/Controls.baml differ
diff --git a/obj/Release/net9.0-windows/win-x64/ref/DeskCore.dll b/obj/Release/net9.0-windows/win-x64/ref/DeskCore.dll
new file mode 100644
index 0000000..e059cff
Binary files /dev/null and b/obj/Release/net9.0-windows/win-x64/ref/DeskCore.dll differ
diff --git a/obj/Release/net9.0-windows/win-x64/refint/DeskCore.dll b/obj/Release/net9.0-windows/win-x64/refint/DeskCore.dll
new file mode 100644
index 0000000..e059cff
Binary files /dev/null and b/obj/Release/net9.0-windows/win-x64/refint/DeskCore.dll differ