Merge branch 'feature/themes' into feature/optimisations

This commit is contained in:
Jack Baron 2020-02-17 01:48:42 +00:00
commit 2826ca6002
No known key found for this signature in database
GPG key ID: CD10BCEEC646C064
33 changed files with 1555 additions and 274 deletions

View file

@ -44,6 +44,9 @@
<setting name="LastTab" serializeAs="String">
<value />
</setting>
<setting name="SelectedTheme" serializeAs="String">
<value />
</setting>
</ModAssistant.Properties.Settings>
<ModAssistant.Settings1>
<setting name="InstallFolder" serializeAs="String">

View file

@ -10,6 +10,25 @@
<ResourceDictionary Source="Localisation/en-US.xaml" />
<!-- Swapped i88n Definitions -->
<ResourceDictionary Source="Localisation/en-US.xaml" />
<!-- Load default theme. Currently it's Dark, not sure if you want to change it to Light. -->
<ResourceDictionary x:Name="LoadedTheme" Source="Themes/Dark.xaml"/>
<!-- Load SVG icons, courtesy of lolPants. -->
<ResourceDictionary x:Name="Icons" Source="Resources/Icons.xaml"/>
<!-- Load Styles needed for the Theme engine to work. -->
<ResourceDictionary x:Name="Button_Style" Source="Styles/Button.xaml"/>
<ResourceDictionary x:Name="Label_Style" Source="Styles/Label.xaml"/>
<ResourceDictionary x:Name="TextBlock_Style" Source="Styles/TextBlock.xaml"/>
<ResourceDictionary x:Name="GridViewColumnHeader_Style" Source="Styles/GridViewColumnHeader.xaml"/>
<ResourceDictionary x:Name="ListView_Style" Source="Styles/ListView.xaml"/>
<ResourceDictionary x:Name="ListViewItem_Style" Source="Styles/ListViewItem.xaml"/>
<ResourceDictionary x:Name="CheckBox_Style" Source="Styles/CheckBox.xaml"/>
<ResourceDictionary x:Name="Rectangle_Style" Source="Styles/Rectangle.xaml"/>
<ResourceDictionary x:Name="ComboBoxItem_Style" Source="Styles/ComboBoxItem.xaml"/>
<ResourceDictionary x:Name="ComboBox_Style" Source="Styles/ComboBox.xaml"/>
<ResourceDictionary x:Name="ToggleButton_Style" Source="Styles/ToggleButton.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>

View file

@ -0,0 +1,219 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.IO;
using System.Windows.Media;
using ModAssistant.Pages;
using System.Xml;
using System.Windows.Markup;
using System.Reflection;
using Microsoft.Win32;
namespace ModAssistant
{
public class Themes
{
public static string LoadedTheme { get; private set; } //Currently loaded theme
public static List<string> LoadedThemes { get => loadedThemes.Keys.ToList(); } //String of themes that can be loaded
public static string ThemeDirectory => $"{Environment.CurrentDirectory}/Themes"; //Self explanatory.
//Local dictionary of ResourceDictionarys mapped by their names.
private static Dictionary<string, ResourceDictionary> loadedThemes = new Dictionary<string, ResourceDictionary>();
private static List<string> preInstalledThemes = new List<string> { "Light", "Dark", "Light Pink" }; //These themes will always be available to use.
/// <summary>
/// Load all themes from local Themes subfolder and from embedded resources.
/// This also refreshes the Themes dropdown in the Options screen.
/// </summary>
public static void LoadThemes()
{
loadedThemes.Clear();
foreach (string localTheme in preInstalledThemes) //Load local themes (Light and Dark)
{
ResourceDictionary theme = LoadTheme(localTheme, true);
loadedThemes.Add(localTheme, theme);
}
if (Directory.Exists(ThemeDirectory)) //Load themes from Themes subfolder if it exists.
{
foreach (string file in Directory.EnumerateFiles(ThemeDirectory))
{
FileInfo info = new FileInfo(file);
//FileInfo includes the extension in its Name field, so we have to select only the actual name.
string name = Path.GetFileNameWithoutExtension(info.Name);
//Ignore Themes without the xaml extension and ignore themes with the same names as others.
//If requests are made I can instead make a Theme class that splits the pre-installed themes from
//user-made ones so that one more user-made Light/Dark theme can be added.
if (info.Extension.ToLower().Contains("xaml") && !loadedThemes.ContainsKey(name))
{
ResourceDictionary theme = LoadTheme(name);
if (theme != null)
{
loadedThemes.Add(name, theme);
}
}
}
}
if (Options.Instance != null && Options.Instance.ApplicationThemeComboBox != null) //Refresh Themes dropdown in Options screen.
{
Options.Instance.ApplicationThemeComboBox.ItemsSource = LoadedThemes;
Options.Instance.ApplicationThemeComboBox.SelectedIndex = LoadedThemes.IndexOf(LoadedTheme);
}
}
/// <summary>
/// Runs once at the start of the program, performs settings checking.
/// </summary>
/// <param name="savedTheme">Theme name retrieved from the settings file.</param>
public static void FirstLoad(string savedTheme)
{
if (savedTheme == "")
{
Themes.ApplyWindowsTheme();
return;
}
try
{
Themes.ApplyTheme(savedTheme, false);
}
catch (ArgumentException)
{
Themes.ApplyWindowsTheme();
MainWindow.Instance.MainText = "Theme not found, reverting to default theme...";
}
}
/// <summary>
/// Applies a loaded theme to ModAssistant.
/// </summary>
/// <param name="theme">Name of the theme.</param>
/// <param name="sendMessage">Send message to MainText (default: true).</param>
public static void ApplyTheme(string theme, bool sendMessage = true)
{
if (loadedThemes.TryGetValue(theme, out ResourceDictionary newTheme))
{
Application.Current.Resources.MergedDictionaries.RemoveAt(2); //We might want to change this to a static integer or search by name.
LoadedTheme = theme;
Application.Current.Resources.MergedDictionaries.Insert(2, newTheme); //Insert our new theme into the same spot as last time.
Properties.Settings.Default.SelectedTheme = theme;
Properties.Settings.Default.Save();
if (sendMessage)
{
MainWindow.Instance.MainText = $"Theme set to {theme}.";
}
ReloadIcons();
}
else throw new ArgumentException($"{theme} does not exist.");
}
/// <summary>
/// Writes a local theme to disk. You cannot write a theme loaded from the Themes subfolder to disk.
/// </summary>
/// <param name="themeName">Name of local theme.</param>
public static void WriteThemeToDisk(string themeName)
{
if (!Directory.Exists(ThemeDirectory))
{
Directory.CreateDirectory(ThemeDirectory);
}
if (!File.Exists($@"{ThemeDirectory}\\{themeName}.xaml"))
{
/*
* Light Pink theme is set to build as an Embedded Resource instead of the default Page.
* This is so that we can grab its exact content from Manifest, shown below.
* Writing it as is instead of using XAMLWriter keeps the source as is with comments, spacing, and organization.
* Using XAMLWriter would compress it into an unorganized mess.
*/
using (Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream($"ModAssistant.Themes.{themeName}.xaml"))
using (FileStream writer = new FileStream($@"{ThemeDirectory}\\{themeName}.xaml", FileMode.Create))
{
byte[] buffer = new byte[s.Length];
int read = s.Read(buffer, 0, (int)s.Length);
writer.Write(buffer, 0, buffer.Length);
}
MainWindow.Instance.MainText = $"Template theme \"{themeName}\" saved to Themes folder.";
}
else MessageBox.Show("Template theme already exists!");
}
/// <summary>
/// Finds the theme set on Windows and applies it.
/// </summary>
public static void ApplyWindowsTheme()
{
using (RegistryKey key = Registry.CurrentUser
.OpenSubKey("Software").OpenSubKey("Microsoft")
.OpenSubKey("Windows").OpenSubKey("CurrentVersion")
.OpenSubKey("Themes").OpenSubKey("Personalize"))
{
object registryValueObject = key?.GetValue("AppsUseLightTheme");
if (registryValueObject != null)
{
if ((int)registryValueObject <= 0)
{
ApplyTheme("Dark", false);
return;
}
}
ApplyTheme("Light", false);
}
}
/// <summary>
/// Loads a ResourceDictionary from either Embedded Resources or from a file location.
/// </summary>
/// <param name="name">ResourceDictionary file name.</param>
/// <param name="localUri">Specifies whether or not to search locally or in the Themes subfolder.</param>
/// <returns></returns>
private static ResourceDictionary LoadTheme(string name, bool localUri = false)
{
string location = $"{Environment.CurrentDirectory}/Themes/{name}.xaml";
if (!File.Exists(location) && !localUri) //Return null if we're looking for an item in the Themes subfolder that doesn't exist.
{
return null;
}
if (localUri) //Change the location of the theme since we're not looking in a directory but rather in ModAssistant itself.
{
location = $"Themes/{name}.xaml";
}
Uri uri = new Uri(location, localUri ? UriKind.Relative : UriKind.Absolute);
ResourceDictionary dictionary = new ResourceDictionary();
try
{
dictionary.Source = uri;
}
catch(Exception ex)
{
MessageBox.Show($"Could not load {name}.\n\n{ex.Message}\n\nIgnoring...");
return null;
}
return dictionary;
}
/// <summary>
/// Reload the icon colors for the About, Info, Options, and Mods buttons from the currently loaded theme.
/// </summary>
private static void ReloadIcons()
{
ResourceDictionary icons = Application.Current.Resources.MergedDictionaries.First(x => x.Source.ToString() == "Resources/Icons.xaml");
ChangeColor(icons, "AboutIconColor", "heartDrawingGroup");
ChangeColor(icons, "InfoIconColor", "info_circleDrawingGroup");
ChangeColor(icons, "OptionsIconColor", "cogDrawingGroup");
ChangeColor(icons, "ModsIconColor", "microchipDrawingGroup");
}
/// <summary>
/// Change the color of an image from the loaded theme.
/// </summary>
/// <param name="icons">ResourceDictionary that contains the image.</param>
/// <param name="ResourceColorName">Resource name of the color to change.</param>
/// <param name="DrawingGroupName">DrawingGroup name for the image.</param>
private static void ChangeColor(ResourceDictionary icons, string ResourceColorName, string DrawingGroupName)
{
Application.Current.Resources[ResourceColorName] = loadedThemes[LoadedTheme][ResourceColorName];
((GeometryDrawing)((DrawingGroup)icons[DrawingGroupName]).Children[0]).Brush = (Brush)Application.Current.Resources[ResourceColorName];
}
}
}

View file

@ -86,7 +86,7 @@
<!-- Options Page -->
<sys:String x:Key="Options:Title">Options:Title</sys:String>
<sys:String x:Key="Options:PageTitle">Options:PageTitle</sys:String>
<sys:String x:Key="Options:InstalFolder">Options:InstalFolder</sys:String>
<sys:String x:Key="Options:InstallFolder">Options:InstalFolder</sys:String>
<sys:String x:Key="Options:SelectFolderButton">Options:SelectFolderButton</sys:String>
<sys:String x:Key="Options:OpenFolderButton">Options:OpenFolderButton</sys:String>
<sys:String x:Key="Options:SaveSelectedMods">Options:SaveSelectedMods</sys:String>

View file

@ -126,7 +126,7 @@
<!-- Options Page -->
<sys:String x:Key="Options:Title">Options</sys:String>
<sys:String x:Key="Options:PageTitle">Settings</sys:String>
<sys:String x:Key="Options:InstalFolder">Install Folder</sys:String>
<sys:String x:Key="Options:InstallFolder">Install Folder</sys:String>
<sys:String x:Key="Options:SelectFolderButton">Select Folder</sys:String>
<sys:String x:Key="Options:OpenFolderButton">Open Folder</sys:String>
<sys:String x:Key="Options:SaveSelectedMods">Save Selected Mods</sys:String>

View file

@ -8,91 +8,96 @@
Icon="Resources/icon.ico"
Title="{DynamicResource MainWindow:WindowTitle}" Width="1280" Height="720"
UIElement.PreviewMouseDown="Window_PreviewMouseDown">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid>
<Rectangle/>
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="65" />
<RowDefinition Height="70" />
<RowDefinition Height="70" />
<RowDefinition Height="70" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Button Name="IntroButton" Grid.Row="0" Height="60" Margin="0,0,10,5" Background="white" Click="IntroButton_Click">
<StackPanel Margin="0,8,0,0">
<Image Height="30" Source="Resources/Intro.png" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:AboutButton}" />
</StackPanel>
</Button>
<Button IsEnabled="false" Name="ModsButton" Grid.Row="1" Height="60" Margin="0,5,10,5" Background="white" Click="ModsButton_Click">
<StackPanel Margin="0,6,0,0">
<Image Height="30" Source="Resources/Mods.png" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:ModsButton}" />
</StackPanel>
</Button>
<Button Name="AboutButton" Grid.Row="2" Height="60" Margin="0,5,10,5" Background="white" Click="AboutButton_Click">
<StackPanel Margin="0,6,0,0">
<Image Height="30" Source="Resources/About.png" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:AboutButton}" />
</StackPanel>
</Button>
<Button Name="OptionsButton" Grid.Row="3" Height="60" Margin="0,5,10,5" Background="white" Click="OptionsButton_Click">
<StackPanel Margin="0,5,0,0">
<Image Height="30" Source="Resources/Options.png" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:OptionsButton}" />
</StackPanel>
</Button>
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="65" />
<RowDefinition Height="70" />
<RowDefinition Height="70" />
<RowDefinition Height="70" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Name="GameVersions" Grid.Row="5" VerticalAlignment="Bottom">
<TextBlock FontSize="10">
<TextBlock Text="{DynamicResource MainWindow:GameVersionLabel}" />:
</TextBlock>
<ComboBox Name="GameVersionsBox" Margin="0,5,5,0" SelectionChanged="GameVersionsBox_SelectionChanged">
</ComboBox>
</StackPanel>
<Button Name="IntroButton" Grid.Row="0" Height="60" Margin="0,0,10,5" Click="IntroButton_Click" Style="{DynamicResource MainPageButton}">
<StackPanel Margin="0,8,0,0">
<Image Height="30" Source="{StaticResource info_circleDrawingImage}" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:IntroButton}" />
</StackPanel>
</Button>
</Grid>
<StackPanel Grid.Row="1" VerticalAlignment="Center">
<TextBlock Text="{DynamicResource MainWindow:VersionLabel}" HorizontalAlignment="Center"/>
<TextBlock Name="VersionText" HorizontalAlignment="Center"/>
</StackPanel>
<Frame Grid.Column="1" Name="Main" NavigationUIVisibility="Hidden" />
<Grid Grid.Row="1" Grid.Column="1" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="115" />
<ColumnDefinition Width="115" />
</Grid.ColumnDefinitions>
<Button IsEnabled="false" Name="ModsButton" Grid.Row="1" Height="60" Margin="0,5,10,5" Click="ModsButton_Click" Style="{DynamicResource MainPageButton}">
<StackPanel Margin="0,6,0,0">
<Image Height="30" Source="{StaticResource microchipDrawingImage}" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:ModsButton}" />
</StackPanel>
</Button>
<TextBlock Name="MainTextBlock" Padding="5" Height="40" VerticalAlignment="Bottom" Background="LightGray" FontSize="20" />
<Button Grid.Column="1" Name="InfoButton" IsEnabled="False" Height="40" Width="100" HorizontalAlignment="Right" Margin="0,10,0,0" Click="InfoButton_Click">
<StackPanel>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:ModInfoButton}" />
<Button Name="AboutButton" Grid.Row="2" Height="60" Margin="0,5,10,5" Click="AboutButton_Click" Style="{DynamicResource MainPageButton}">
<StackPanel Margin="0,6,0,0">
<Image Height="30" Source="{StaticResource heartDrawingImage}" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:AboutButton}" />
</StackPanel>
</Button>
<Button Name="OptionsButton" Grid.Row="3" Height="60" Margin="0,5,10,5" Click="OptionsButton_Click" Style="{DynamicResource MainPageButton}">
<StackPanel Margin="0,5,0,0">
<Image Height="30" Source="{StaticResource cogDrawingImage}" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:OptionsButton}" />
</StackPanel>
</Button>
<StackPanel Name="GameVersions" Grid.Row="5" VerticalAlignment="Bottom">
<TextBlock FontSize="10">
<TextBlock Text="{DynamicResource MainWindow:GameVersionLabel}" />:
</TextBlock>
<ComboBox Name="GameVersionsBox" Margin="0,5,5,0" SelectionChanged="GameVersionsBox_SelectionChanged">
</ComboBox>
</StackPanel>
</Button>
<Button Grid.Column="2" Name="InstallButton" IsEnabled="False" Height="40" Width="100" HorizontalAlignment="Right" Margin="0,10,0,0" Click="InstallButton_Click">
<StackPanel>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:InstallButtonTop}" />
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:InstallButtonBottom}" />
</StackPanel>
</Button>
</Grid>
</Grid>
</Grid>
<StackPanel Grid.Row="1" VerticalAlignment="Center">
<TextBlock Text="{DynamicResource MainWindow:VersionLabel}" HorizontalAlignment="Center" />
<TextBlock Name="VersionText" HorizontalAlignment="Center" />
</StackPanel>
<Frame Grid.Column="1" Name="Main" NavigationUIVisibility="Hidden" />
<Grid Grid.Row="1" Grid.Column="1" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="115" />
<ColumnDefinition Width="115" />
</Grid.ColumnDefinitions>
<Border BorderThickness="1" Height="40" VerticalAlignment="Bottom" BorderBrush="{DynamicResource BottomStatusBarOutline}">
<TextBlock Name="MainTextBlock" Padding="5" Background="{DynamicResource BottomStatusBarBackground}" FontSize="20" />
</Border>
<Button Grid.Column="1" Name="InfoButton" IsEnabled="False" Height="40" Width="100" HorizontalAlignment="Right" Margin="0,10,0,0" Click="InfoButton_Click">
<StackPanel>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:ModInfoButton}" />
</StackPanel>
</Button>
<Button Grid.Column="2" Name="InstallButton" IsEnabled="False" Height="40" Width="100" HorizontalAlignment="Right" Margin="0,10,0,0" Click="InstallButton_Click">
<StackPanel>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:InstallButtonTop}" />
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:InstallButtonBottom}" />
</StackPanel>
</Button>
</Grid>
</Grid>
</Grid>
</Window>

View file

@ -50,6 +50,9 @@ namespace ModAssistant
return;
}
Themes.LoadThemes();
Themes.FirstLoad(Properties.Settings.Default.SelectedTheme);
Task.Run(() => LoadVersionsAsync());
if (!Properties.Settings.Default.Agreed || string.IsNullOrEmpty(Properties.Settings.Default.LastTab))
@ -71,6 +74,7 @@ namespace ModAssistant
break;
case "Options":
Main.Content = Options.Instance;
Themes.LoadThemes();
break;
default:
Main.Content = Intro.Instance;
@ -187,6 +191,7 @@ namespace ModAssistant
private void OptionsButton_Click(object sender, RoutedEventArgs e)
{
Main.Content = Options.Instance;
Themes.LoadThemes();
Properties.Settings.Default.LastTab = "Options";
Properties.Settings.Default.Save();
}

View file

@ -1,175 +1,234 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{6A224B82-40DA-40B3-94DC-EFBEC2BDDA39}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>ModAssistant</RootNamespace>
<AssemblyName>ModAssistant</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Resources\icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Management" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="WindowsFormsIntegration" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="Classes\Http.cs" />
<Compile Include="Classes\HyperlinkExtensions.cs" />
<Compile Include="Classes\Promotions.cs" />
<Compile Include="Classes\Diagnostics.cs" />
<Compile Include="Classes\Updater.cs" />
<Compile Include="Pages\Intro.xaml.cs">
<DependentUpon>Intro.xaml</DependentUpon>
</Compile>
<Compile Include="Classes\Mod.cs" />
<Compile Include="Pages\Invalid.xaml.cs">
<DependentUpon>Invalid.xaml</DependentUpon>
</Compile>
<Compile Include="Pages\Loading.xaml.cs">
<DependentUpon>Loading.xaml</DependentUpon>
</Compile>
<Compile Include="Pages\Mods.xaml.cs">
<DependentUpon>Mods.xaml</DependentUpon>
</Compile>
<Compile Include="Pages\About.xaml.cs">
<DependentUpon>About.xaml</DependentUpon>
</Compile>
<Compile Include="Classes\Utils.cs" />
<Page Include="Localisation\en-US.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Localisation\en-DEBUG.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\Intro.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Classes\OneClickInstaller.cs" />
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="Pages\Invalid.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\Loading.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\Mods.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\About.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\Options.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Pages\Options.xaml.cs">
<DependentUpon>Options.xaml</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>PublicSettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\icon.ico" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\About.png" />
<Resource Include="Resources\Intro.png" />
<Resource Include="Resources\Mods.png" />
<Resource Include="Resources\Options.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{6A224B82-40DA-40B3-94DC-EFBEC2BDDA39}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>ModAssistant</RootNamespace>
<AssemblyName>ModAssistant</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Resources\icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Management" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="WindowsFormsIntegration" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="Classes\Http.cs" />
<Compile Include="Classes\HyperlinkExtensions.cs" />
<Compile Include="Classes\Promotions.cs" />
<Compile Include="Classes\Diagnostics.cs" />
<Compile Include="Classes\Themes.cs" />
<Compile Include="Classes\Updater.cs" />
<Compile Include="Pages\Intro.xaml.cs">
<DependentUpon>Intro.xaml</DependentUpon>
</Compile>
<Compile Include="Classes\Mod.cs" />
<Page Include="Localisation\en-US.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Localisation\en-DEBUG.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Compile Include="Pages\Invalid.xaml.cs">
<DependentUpon>Invalid.xaml</DependentUpon>
</Compile>
<Compile Include="Pages\Loading.xaml.cs">
<DependentUpon>Loading.xaml</DependentUpon>
</Compile>
<Compile Include="Pages\Mods.xaml.cs">
<DependentUpon>Mods.xaml</DependentUpon>
</Compile>
<Compile Include="Pages\About.xaml.cs">
<DependentUpon>About.xaml</DependentUpon>
</Compile>
<Compile Include="Classes\Utils.cs" />
<Page Include="Pages\Intro.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Classes\OneClickInstaller.cs" />
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="Pages\Loading.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\Invalid.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\Mods.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\About.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\Options.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Resources\Icons.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\Button.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\CheckBox.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\ComboBox.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\ComboBoxItem.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\GridViewColumnHeader.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\Label.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\ListView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\ListViewItem.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\Rectangle.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\TextBlock.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\ToggleButton.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Themes\Dark.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Themes\Light.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Themes\Light Pink.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<EmbeddedResource Include="Themes\Ugly Kulu-Ya-Ku.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Compile Include="Pages\Options.xaml.cs">
<DependentUpon>Options.xaml</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>PublicSettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View file

@ -61,7 +61,7 @@
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock FontWeight="Bold" FontSize="14" Text="{Binding Name}"/>
<TextBlock FontWeight="Bold" FontSize="14" Padding="6,0,0,0" Text="{Binding Name}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>

View file

@ -1,10 +1,10 @@
<Page x:Class="ModAssistant.Pages.Options"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ModAssistant.Pages"
mc:Ignorable="d"
mc:Ignorable="d"
d:DesignHeight="629" d:DesignWidth="1182"
Title="{DynamicResource Options:Title}">
<Page.Resources>
@ -27,6 +27,7 @@
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
@ -37,12 +38,12 @@
<TextBlock Grid.Row="0" Margin="15,5,5,5" Text="{DynamicResource Options:PageTitle}" FontSize="24" FontWeight="Bold" HorizontalAlignment="Left"/>
<TextBlock Grid.Row="1" Margin="5" Text="{DynamicResource Options:InstalFolder}" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16"/>
<Border Grid.ColumnSpan="2" Grid.Row="2" Margin="5" Background="LightGray" Height="30" MinWidth="450" >
<TextBlock Grid.Row="1" Margin="5" Text="{DynamicResource Options:InstallFolder}" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16"/>
<Border Grid.ColumnSpan="2" Grid.Row="2" Margin="5" Background="{DynamicResource DirectoryBackground}" BorderBrush="{DynamicResource DirectoryOutline}" BorderThickness="1" Height="30" MinWidth="450" >
<TextBlock Name="DirectoryTextBlock" Margin="5" Text="{Binding InstallDirectory}" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="16"/>
</Border>
<Button Grid.Row="2" Grid.Column="2" Margin="3" Height="30" Width="80" Content="{DynamicResource Options:SelectFolderButton}" Click="SelectDirButton_Click"/>
<Button Grid.Row="2" Grid.Column="3" Margin="3" Height="30" Width="80" Content="{DynamicResource Options:OpenFolderButton}" Click="OpenDirButton_Click"/>
<Button Grid.Row="2" Grid.Column="2" Margin="3" Height="30" Width="93" Content="{DynamicResource Options:SelectFolderButton}" Click="SelectDirButton_Click"/>
<Button Grid.Row="2" Grid.Column="3" Margin="3" Height="30" Width="93" Content="{DynamicResource Options:OpenFolderButton}" Click="OpenDirButton_Click"/>
<TextBlock Grid.Row="3" Margin="5" Text="{DynamicResource Options:SaveSelectedMods}" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<CheckBox Grid.Row="3" Grid.Column="1" Name="SaveSelected" VerticalAlignment="Center" HorizontalAlignment="Left" IsChecked="{Binding SaveSelection, Mode=TwoWay}" Checked="SaveSelected_Checked" Unchecked="SaveSelected_Unchecked"/>
@ -64,17 +65,33 @@
<CheckBox Grid.Row="8" Grid.Column="1" Name="ModelSaberProtocolHandler" VerticalAlignment="Center" HorizontalAlignment="Left" IsChecked="{Binding ModelSaberProtocolHandlerEnabled}" Checked="ModelSaberProtocolHandler_Checked" Unchecked="ModelSaberProtocolHandler_Unchecked"/>
<StackPanel Grid.Row="12" Margin="5" Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock FontWeight="Bold" FontSize="16">
<TextBlock FontWeight="Bold" FontSize="16">
<TextBlock Text="{DynamicResource Options:GameType}" />:&#160;
</TextBlock>
<TextBlock Name="GameTypeTextBlock" Text="{Binding InstallType}" FontSize="16"/>
</StackPanel>
<TextBlock Name="GameTypeTextBlock" Text="{Binding InstallType}" FontSize="16"/>
</StackPanel>
<TextBlock Grid.Row="13" Margin="15,5,5,5" Text="{DynamicResource Options:Diagnostics}" FontSize="24" FontWeight="Bold" HorizontalAlignment="Left"/>
<StackPanel Grid.Row="14" Margin="0" Orientation="Horizontal" HorizontalAlignment="Left">
<StackPanel Margin="5" Grid.Row="13" Grid.ColumnSpan="2" HorizontalAlignment="Stretch">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock HorizontalAlignment="Left" Text="Application Theme: " FontWeight="Bold" FontSize="16" />
<ComboBox Name="ApplicationThemeComboBox" Grid.Column="2" HorizontalAlignment="Stretch" Height="30" SelectionChanged="ApplicationThemeComboBox_SelectionChanged" VerticalContentAlignment="Center" />
</Grid>
</StackPanel>
<Button Name="ApplicationThemeExportTemplate" Grid.Row="13" Grid.Column="2" Margin="3" Height="30" Width="93" Content="Export Template" Click="ApplicationThemeExportTemplate_Click"></Button>
<Button Name="ApplicationThemeOpenThemesFolder" Grid.Row="13" Grid.Column="3" Margin="3" Height="30" Width="93" Content="Open Folder" Click="ApplicationThemeOpenThemesFolder_Click"></Button>
<TextBlock Grid.Row="14" Margin="15,5,5,5" Text="{DynamicResource Options:Diagnostics}" FontSize="24" FontWeight="Bold" HorizontalAlignment="Left"/>
<StackPanel Grid.Row="15" Margin="0" Orientation="Horizontal" HorizontalAlignment="Left">
<Button Margin="5" Height="30" Width="80" Content="{DynamicResource Options:OpenLogsButton}" Click="OpenLogsDirButton_Click"/>
<Button Margin="5" Height="30" x:Name="YeetBSIPA" Width="100" Content="{DynamicResource Options:UninstallBSIPAButton}" Click="YeetBSIPAButton_Click"/>
<Button Margin="5" Height="30" Width="110" Background="Red" Content="{DynamicResource Options:RemoveAllModsButton}" Click="YeetModsButton_Click"/>
<Button Margin="5" Height="30" Width="110" Background="{DynamicResource ButtonDangerBackground}" Click="YeetModsButton_Click">
<TextBlock Foreground="White" Text="{DynamicResource Options:RemoveAllModsButton}" />
</Button>
</StackPanel>
</Grid>

View file

@ -6,6 +6,10 @@ using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using Path = System.IO.Path;
using System.Net;
using System.Web.Script.Serialization;
using System.Web;
using System.ComponentModel;
namespace ModAssistant.Pages
{
@ -240,5 +244,36 @@ namespace ModAssistant.Pages
MainWindow.Instance.MainText = $"{Application.Current.FindResource("Options:AllModsUninstalled")}...";
}
}
private void ApplicationThemeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if ((sender as ComboBox).SelectedItem == null)
{
Themes.ApplyWindowsTheme();
MainWindow.Instance.MainText = "Current theme has been removed, reverting to default...";
}
else
{
Themes.ApplyTheme((sender as ComboBox).SelectedItem.ToString());
}
}
private void ApplicationThemeExportTemplate_Click(object sender, RoutedEventArgs e)
{
Themes.WriteThemeToDisk("Ugly Kulu-Ya-Ku");
Themes.LoadThemes();
}
private void ApplicationThemeOpenThemesFolder_Click(object sender, RoutedEventArgs e)
{
if (Directory.Exists(Themes.ThemeDirectory))
{
System.Diagnostics.Process.Start(Themes.ThemeDirectory);
}
else
{
MessageBox.Show("Themes folder not found! Try exporting the template...");
}
}
}
}

View file

@ -12,7 +12,7 @@ namespace ModAssistant.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.1.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.2.0.0")]
public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@ -154,5 +154,17 @@ namespace ModAssistant.Properties {
this["LastTab"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Light")]
public string SelectedTheme {
get {
return ((string)(this["SelectedTheme"]));
}
set {
this["SelectedTheme"] = value;
}
}
}
}

View file

@ -35,5 +35,8 @@
<Setting Name="LastTab" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SelectedTheme" Type="System.String" Scope="User">
<Value Profile="(Default)">Light</Value>
</Setting>
</Settings>
</SettingsFile>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -0,0 +1,28 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Geometry x:Key="heartGeometry">F1 M512,512z M0,0z M458.4,64.3C400.6,15.7 311.3,23 256,79.3 200.7,23 111.4,15.6 53.6,64.3 -21.6,127.6 -10.6,230.8 43,285.5L218.4,464.2C228.4,474.4 241.8,480.1 256,480.1 270.3,480.1 283.6,474.5 293.6,464.3L469,285.6C522.5,230.9,533.7,127.7,458.4,64.3z M434.8,251.8L259.4,430.5C257,432.9,255,432.9,252.6,430.5L77.2,251.8C40.7,214.6 33.3,144.2 84.5,101.1 123.4,68.4 183.4,73.3 221,111.6L256,147.3 291,111.6C328.8,73.1 388.8,68.4 427.5,101 478.6,144.1 471,214.9 434.8,251.8z</Geometry>
<DrawingGroup x:Key="heartDrawingGroup" ClipGeometry="M0,0 V512 H512 V0 H0 Z">
<DrawingGroup.Transform>
<TranslateTransform X="0.00011691695544868708" Y="0" />
</DrawingGroup.Transform>
<GeometryDrawing Brush="{DynamicResource AboutIconColor}" Geometry="{StaticResource heartGeometry}" />
</DrawingGroup>
<DrawingImage x:Key="heartDrawingImage" Drawing="{StaticResource heartDrawingGroup}" />
<Geometry x:Key="info_circleGeometry">F1 M512,512z M0,0z M256,8C119.043,8 8,119.083 8,256 8,392.997 119.043,504 256,504 392.957,504 504,392.997 504,256 504,119.083 392.957,8 256,8z M256,118C279.196,118 298,136.804 298,160 298,183.196 279.196,202 256,202 232.804,202 214,183.196 214,160 214,136.804 232.804,118 256,118z M312,372C312,378.627,306.627,384,300,384L212,384C205.373,384,200,378.627,200,372L200,348C200,341.373,205.373,336,212,336L224,336 224,272 212,272C205.373,272,200,266.627,200,260L200,236C200,229.373,205.373,224,212,224L276,224C282.627,224,288,229.373,288,236L288,336 300,336C306.627,336,312,341.373,312,348L312,372z</Geometry>
<DrawingGroup x:Key="info_circleDrawingGroup" ClipGeometry="M0,0 V512 H512 V0 H0 Z">
<GeometryDrawing Brush="{DynamicResource InfoIconColor}" Geometry="{StaticResource info_circleGeometry}" />
</DrawingGroup>
<DrawingImage x:Key="info_circleDrawingImage" Drawing="{StaticResource info_circleDrawingGroup}" />
<Geometry x:Key="cogGeometry">F1 M512,512z M0,0z M487.4,315.7L444.8,291.1C449.1,267.9,449.1,244.1,444.8,220.9L487.4,196.3C492.3,193.5 494.5,187.7 492.9,182.3 481.8,146.7 462.9,114.5 438.2,87.7 434.4,83.6 428.2,82.6 423.4,85.4L380.8,110C362.9,94.6,342.3,82.7,320,74.9L320,25.8C320,20.2 316.1,15.3 310.6,14.1 273.9,5.9 236.3,6.3 201.4,14.1 195.9,15.3 192,20.2 192,25.8L192,75C169.8,82.9,149.2,94.8,131.2,110.1L88.7,85.5C83.8,82.7 77.7,83.6 73.9,87.8 49.2,114.5 30.3,146.7 19.2,182.4 17.5,187.8 19.8,193.6 24.7,196.4L67.3,221C63,244.2,63,268,67.3,291.2L24.7,315.8C19.8,318.6 17.6,324.4 19.2,329.8 30.3,365.4 49.2,397.6 73.9,424.4 77.7,428.5 83.9,429.5 88.7,426.7L131.3,402.1C149.2,417.5,169.8,429.4,192.1,437.2L192.1,486.4C192.1,492 196,496.9 201.5,498.1 238.2,506.3 275.8,505.9 310.7,498.1 316.2,496.9 320.1,492 320.1,486.4L320.1,437.2C342.3,429.3,362.9,417.4,380.9,402.1L423.5,426.7C428.4,429.5 434.5,428.6 438.3,424.4 463,397.7 481.9,365.5 493,329.8 494.5,324.3 492.3,318.5 487.4,315.7z M256,336C211.9,336 176,300.1 176,256 176,211.9 211.9,176 256,176 300.1,176 336,211.9 336,256 336,300.1 300.1,336 256,336z</Geometry>
<DrawingGroup x:Key="cogDrawingGroup" ClipGeometry="M0,0 V512 H512 V0 H0 Z">
<GeometryDrawing Brush="{DynamicResource OptionsIconColor}" Geometry="{StaticResource cogGeometry}" />
</DrawingGroup>
<DrawingImage x:Key="cogDrawingImage" Drawing="{StaticResource cogDrawingGroup}" />
<Geometry x:Key="microchipGeometry">F1 M512,512z M0,0z M416,48L416,464C416,490.51,394.51,512,368,512L144,512C117.49,512,96,490.51,96,464L96,48C96,21.49,117.49,0,144,0L368,0C394.51,0,416,21.49,416,48z M512,106L512,118A6,6,0,0,1,506,124L488,124 488,130A6,6,0,0,1,482,136L440,136 440,88 482,88A6,6,0,0,1,488,94L488,100 506,100A6,6,0,0,1,512,106z M512,202L512,214A6,6,0,0,1,506,220L488,220 488,226A6,6,0,0,1,482,232L440,232 440,184 482,184A6,6,0,0,1,488,190L488,196 506,196A6,6,0,0,1,512,202z M512,298L512,310A6,6,0,0,1,506,316L488,316 488,322A6,6,0,0,1,482,328L440,328 440,280 482,280A6,6,0,0,1,488,286L488,292 506,292A6,6,0,0,1,512,298z M512,394L512,406A6,6,0,0,1,506,412L488,412 488,418A6,6,0,0,1,482,424L440,424 440,376 482,376A6,6,0,0,1,488,382L488,388 506,388A6,6,0,0,1,512,394z M30,376L72,376 72,424 30,424A6,6,0,0,1,24,418L24,412 6,412A6,6,0,0,1,0,406L0,394A6,6,0,0,1,6,388L24,388 24,382A6,6,0,0,1,30,376z M30,280L72,280 72,328 30,328A6,6,0,0,1,24,322L24,316 6,316A6,6,0,0,1,0,310L0,298A6,6,0,0,1,6,292L24,292 24,286A6,6,0,0,1,30,280z M30,184L72,184 72,232 30,232A6,6,0,0,1,24,226L24,220 6,220A6,6,0,0,1,0,214L0,202A6,6,0,0,1,6,196L24,196 24,190A6,6,0,0,1,30,184z M30,88L72,88 72,136 30,136A6,6,0,0,1,24,130L24,124 6,124A6,6,0,0,1,0,118L0,106A6,6,0,0,1,6,100L24,100 24,94A6,6,0,0,1,30,88z</Geometry>
<DrawingGroup x:Key="microchipDrawingGroup" ClipGeometry="M0,0 V512 H512 V0 H0 Z">
<GeometryDrawing Brush="{DynamicResource ModsIconColor}" Geometry="{StaticResource microchipGeometry}" />
</DrawingGroup>
<DrawingImage x:Key="microchipDrawingImage" Drawing="{StaticResource microchipDrawingGroup}" />
</ResourceDictionary>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

View file

@ -0,0 +1,84 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="Button" x:Key="DefaultButton">
<Setter Property="Background" Value="{DynamicResource ButtonBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonBackground}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Foreground" Value="{DynamicResource TextColor}" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="MinHeight" Value="25" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Name="Chrome"
Background="{TemplateBinding Background}"
BorderBrush="{DynamicResource ButtonOutline}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="true"
TextBlock.Foreground="{DynamicResource TextColor}">
<ContentPresenter Name="Presenter"
Margin="{TemplateBinding Padding}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
TextBlock.Foreground="{DynamicResource TextColor}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter Property="Background" Value="{DynamicResource ButtonHighlightedBackground}"/>
<Setter Property="Foreground" Value="{DynamicResource TextHighlighted}" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{DynamicResource ButtonClickedBackground}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource ButtonDisabledText}"/>
<Setter Property="Background" Value="{DynamicResource ButtonDisabledBackground}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Button" BasedOn="{StaticResource DefaultButton}" />
<Style TargetType="Button" x:Key="MainPageButton" BasedOn="{StaticResource DefaultButton}">
<Setter Property="Background" Value="{DynamicResource PageButtonBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource PageButtonOutline}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Name="Chrome"
Background="{TemplateBinding Background}"
BorderBrush="{DynamicResource PageButtonOutline}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="true"
TextBlock.Foreground="{DynamicResource TextColor}">
<ContentPresenter Name="Presenter"
Margin="{TemplateBinding Padding}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
TextBlock.Foreground="{DynamicResource TextColor}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter Property="Background" Value="{DynamicResource PageButtonHighlightedBackground}"/>
<Setter Property="Foreground" Value="{DynamicResource TextHighlighted}" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{DynamicResource PageButtonClickedBackground}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{DynamicResource PageButtonDisabledBackground}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,76 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="CheckBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CheckBox">
<Grid
Name="templateRoot"
SnapsToDevicePixels="True"
Background="{DynamicResource CheckboxDefaultOutlineColor}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border
Name="checkBoxBorder"
Margin="1"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
BorderThickness="0"
Background="{DynamicResource CheckboxDefaultBackground}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid Name="markGrid">
<Path
Name="optionMark"
Opacity="0"
Stretch="None"
Margin="1"
Data="F1 M9.97498,1.22334 L4.6983,9.09834 L4.52164,9.09834 L0,5.19331 L1.27664,3.52165 L4.255,6.08833 L8.33331,1.52588E-05 L9.97498,1.22334"
Fill="{DynamicResource CheckboxTickColor}" />
<Rectangle
Name="indeterminateMark"
Margin="2"
Opacity="0"
Fill="{DynamicResource CheckboxTickColor}" />
</Grid>
</Border>
<ContentPresenter
Name="contentPresenter"
RecognizesAccessKey="True"
Grid.Column="1"
Margin="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Focusable="False" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter TargetName="checkBoxBorder" Property="Background" Value="{DynamicResource CheckboxHoveredBackground}" />
<Setter TargetName="optionMark" Property="Fill" Value="{DynamicResource CheckboxHoveredTickColor}" />
<Setter TargetName="indeterminateMark" Property="Fill" Value="{DynamicResource CheckboxHoveredTickColor}" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="checkBoxBorder" Property="Background" Value="{DynamicResource CheckboxDisabledBackground}" />
<Setter TargetName="checkBoxBorder" Property="BorderBrush" Value="{DynamicResource CheckboxDisabledOutlineColor}" />
<Setter TargetName="optionMark" Property="Fill" Value="{DynamicResource CheckboxDisabledTickColor}" />
<Setter TargetName="indeterminateMark" Property="Fill" Value="{DynamicResource CheckboxDisabledTickColor}" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="checkBoxBorder" Property="Background" Value="{DynamicResource CheckboxPressedBackground}"/>
</Trigger>
<Trigger Property="ToggleButton.IsChecked" Value="True">
<Setter TargetName="optionMark" Property="UIElement.Opacity" Value="1" />
<Setter TargetName="indeterminateMark" Property="UIElement.Opacity" Value="0" />
</Trigger>
<Trigger Property="ToggleButton.IsChecked" Value="{x:Null}">
<Setter TargetName="optionMark" Property="UIElement.Opacity" Value="0" />
<Setter TargetName="indeterminateMark" Property="UIElement.Opacity" Value="1" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,105 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="ComboBox">
<Setter Property="Foreground" Value="{DynamicResource TextColor}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ComboBoxOutline}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBox}">
<Grid Name="templateRoot" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition MinWidth="{DynamicResource SystemParameters.VerticalScrollBarWidthKey}" Width="0" />
</Grid.ColumnDefinitions>
<Popup
Name="PART_Popup"
AllowsTransparency="True"
Placement="Bottom"
Grid.ColumnSpan="2"
PopupAnimation="Slide"
IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}">
<Border
Name="DropDownBorder"
BorderBrush="{DynamicResource ComboBoxOutline}"
Background="{DynamicResource ComboBoxBackground}"
BorderThickness="1"
MinWidth="{Binding ActualWidth, ElementName=templateRoot}">
<ScrollViewer Name="DropDownScrollViewer">
<Grid Name="grid" RenderOptions.ClearTypeHint="Enabled">
<Canvas
Name="canvas"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Height="0"
Width="0">
<Rectangle
Name="OpaqueRect"
Fill="{Binding Background, ElementName=DropDownBorder}"
MinHeight="{Binding ActualHeight, ElementName=DropDownBorder}"
MinWidth="{Binding ActualWidth, ElementName=DropDownBorder}" />
</Canvas>
<ItemsPresenter
Name="ItemsPresenter"
KeyboardNavigation.DirectionalNavigation="Contained"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Grid>
</ScrollViewer>
</Border>
</Popup>
<Border
Name="Border"
Background="Transparent"
Margin="0">
<TextBox
Name="PART_EditableTextBox"
Margin="2.5"
BorderBrush="Transparent"
BorderThickness="0"
Foreground="{DynamicResource TextColor}"
HorizontalContentAlignment="Left"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
IsReadOnly="True"
Background="Transparent"
Text="{TemplateBinding Text}"/>
</Border>
<ToggleButton
Name="toggleButton"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Border" Property="UIElement.Opacity" Value="0.56" />
</Trigger>
<Trigger Property="UIElement.IsKeyboardFocusWithin" Value="True">
<Setter Property="Foreground" Value="#FF000000" />
</Trigger>
<Trigger SourceName="PART_Popup" Property="Popup.HasDropShadow" Value="True">
</Trigger>
<Trigger Property="ItemsControl.HasItems" Value="False">
<Setter TargetName="DropDownBorder" Property="Height" Value="95" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ItemsControl.IsGrouping" Value="True" />
<Condition Property="VirtualizingPanel.IsVirtualizingWhenGrouping" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="ScrollViewer.CanContentScroll" Value="False" />
</MultiTrigger>
<Trigger SourceName="DropDownScrollViewer" Property="CanContentScroll" Value="False">
<Setter TargetName="OpaqueRect" Property="Canvas.Top" Value="{Binding VerticalOffset, ElementName=DropDownScrollViewer}" />
<Setter TargetName="OpaqueRect" Property="Canvas.Left" Value="{Binding HorizontalOffset, ElementName=DropDownScrollViewer}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="ComboBox.IsEditable" Value="True">
<Setter Property="IsTabStop" Value="False" />
<Setter Property="Padding" Value="2" />
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,82 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="ComboBoxItem" x:Key="{x:Type ComboBoxItem}">
<Setter Property="UIElement.SnapsToDevicePixels" Value="True" />
<Setter Property="Padding" Value="4,1" />
<Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" />
<Setter Property="Background" Value="{DynamicResource ComboBoxBackground}" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBoxItem}">
<Border
Name="Bd"
BorderBrush="{DynamicResource ComboBoxOutline}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{DynamicResource ComboBoxBackground}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="True">
<ContentPresenter
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource SystemColors.GrayTextBrushKey}"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="False" />
<Condition Property="UIElement.IsMouseOver" Value="True" />
<Condition Property="UIElement.IsKeyboardFocused" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ComboBoxHighlighted}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="UIElement.IsMouseOver" Value="False" />
<Condition Property="UIElement.IsKeyboardFocused" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ComboBoxSelected}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="UIElement.IsMouseOver" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ComboBoxSelected}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="UIElement.IsMouseOver" Value="False" />
<Condition Property="UIElement.IsKeyboardFocused" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ComboBoxSelected}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="False" />
<Condition Property="UIElement.IsMouseOver" Value="False" />
<Condition Property="UIElement.IsKeyboardFocused" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ComboBoxHighlighted}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="False" />
<Condition Property="UIElement.IsMouseOver" Value="True" />
<Condition Property="UIElement.IsKeyboardFocused" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ComboBoxHighlighted}" />
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,52 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="GridViewColumnHeader">
<Setter Property="GridViewColumnHeader.Foreground" Value="{DynamicResource TextColor}"/>
<Setter Property="GridViewColumnHeader.Background" Value="{DynamicResource 2ndBackgroundBrush}"/>
<Setter Property="GridViewColumnHeader.BorderBrush" Value="{DynamicResource ModColumnBorderBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
<Grid SnapsToDevicePixels="True">
<Border Name="HeaderBorder" BorderThickness="0,1,0,1"
Margin="-2,-1,-1,0"
BorderBrush="{DynamicResource ModColumnBorderBrush}"
Background="{DynamicResource ModColumnBackground}">
<Grid>
<Rectangle
Name="UpperHighlight"
Visibility="Collapsed"
Fill="#FFE3F7FF" />
<Border
Grid.RowSpan="2"
Padding="{TemplateBinding Padding}">
<ContentPresenter
Name="HeaderContent"
Margin="0,0,0,1"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<Border
Name="HeaderHoverBorder"
BorderThickness="1,0,1,1"
Margin="1,1,0,0" />
<Border
Name="HeaderPressBorder"
BorderThickness="1,1,1,0"
Margin="1,0,0,1" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter TargetName="UpperHighlight" Property="Visibility" Value="Visible"/>
<Setter TargetName="UpperHighlight" Property="Fill" Value="{DynamicResource ModColumnHeaderHighlighted}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,28 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="Label"
>
<Setter Property="Label.FontFamily"
Value="{DynamicResource DefaultFontFamily}" />
<Setter Property="Label.FontSize"
Value="13" />
<Setter Property="Label.Foreground"
Value="{DynamicResource TextColor}" />
<Setter Property="Label.Height"
Value="Auto" />
<Setter Property="Label.Width"
Value="Auto" />
<Setter Property="Label.HorizontalAlignment"
Value="Center" />
<Setter Property="Label.VerticalAlignment"
Value="Center" />
<Setter Property="Label.HorizontalContentAlignment"
Value="Center" />
<Setter Property="Label.VerticalContentAlignment"
Value="Center" />
<Setter Property="Label.FocusVisualStyle"
Value="{x:Null}" />
<Setter Property="TextOptions.TextFormattingMode"
Value="Display" />
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,7 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Style TargetType="ListView">
<Setter Property="ListView.Background" Value="{DynamicResource ModListBackground}"/>
<Setter Property="ListView.BorderBrush" Value="{DynamicResource ModListBorderBrush}" />
<Setter Property="ListView.BorderThickness" Value="1,1.1,1,1" />
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,42 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Border
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}"
CornerRadius="2"
SnapsToDevicePixels="True">
<Border
Name="InnerBorder"
CornerRadius="1"
BorderThickness="1">
<Grid>
<Rectangle
Name="UpperHighlight"
Visibility="Collapsed"
Fill="#75FFFFFF" />
<GridViewRowPresenter
Grid.RowSpan="2"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Grid>
</Border>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{DynamicResource ModListItemHighlighted}"/>
<Setter TargetName="UpperHighlight" Property="Visibility" Value="Visible"/>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="Background" Value="{DynamicResource ModListItemSelected}"/>
<Setter TargetName="UpperHighlight" Property="Visibility" Value="Hidden"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,5 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Style TargetType="Rectangle">
<Setter Property="Fill" Value="{DynamicResource ModAssistantBackground}"/>
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,7 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Style TargetType="TextBlock">
<Setter Property="TextBlock.Foreground" Value="{DynamicResource TextColor}"/>
<Setter Property="TextWrapping" Value="NoWrap"/>
<Setter Property="TextTrimming" Value="None"/>
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,81 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Foreground" Value="{DynamicResource SystemColors.ControlTextBrushKey}" />
<Setter Property="Padding" Value="2" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="{DynamicResource ComboBoxOutline}" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="ComboBoxButton"/>
</Grid.ColumnDefinitions>
<Border
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
VerticalAlignment="{TemplateBinding VerticalAlignment}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="True"
Opacity="0.5">
<Path
Name="ArrowDownPath"
Data="M2.5,0 L8.5,0 L5.5,3"
Fill="{DynamicResource ComboBoxArrow}"
VerticalAlignment="Center"
HorizontalAlignment="Right"
Margin="5"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="ToggleButton.IsChecked" Value="true">
<Setter Property="BorderBrush" Value="{DynamicResource ComboBoxOutline}" />
<Setter Property="Background" Value="{DynamicResource ComboBoxSelected}" />
</Trigger>
<Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="{DynamicResource ComboBoxHighlighted}" />
<Setter Property="Background" Value="{DynamicResource ComboBoxHighlighted}" />
</Trigger>
<Trigger Property="UIElement.IsKeyboardFocused" Value="True">
<Setter Property="BorderBrush" Value="{DynamicResource ComboBoxHighlighted}" />
<Setter Property="Background" Value="{DynamicResource ComboBoxHighlighted}" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="UIElement.IsMouseOver" Value="True" />
<Condition Property="ToggleButton.IsChecked" Value="true" />
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="{DynamicResource ComboBoxHighlighted}" />
<Setter Property="Background" Value="{DynamicResource ComboBoxSelected}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="UIElement.IsKeyboardFocused" Value="True" />
<Condition Property="ToggleButton.IsChecked" Value="true" />
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="{DynamicResource ComboBoxHighlighted}" />
<Setter Property="Background" Value="{DynamicResource ComboBoxSelected}" />
</MultiTrigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="BorderBrush" Value="{DynamicResource ComboBoxClicked}" />
<Setter Property="Background" Value="{DynamicResource ComboBoxClicked}" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Value="{DynamicResource SystemColors.GrayTextBrushKey}" Property="Foreground" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,75 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- ModAssistant Dark Theme by Caeden117 and lolPants -->
<!-- Standard Styles -->
<Color x:Key="StandardContent">#E0E0E0</Color>
<Color x:Key="StandardPrimary">#2E2E2E</Color>
<Color x:Key="StandardSecondary">#0F0F0F</Color>
<Color x:Key="StandardBorder">#696969</Color>
<Color x:Key="StandardHighlight">#454545</Color>
<Color x:Key="StandardActive">#696969</Color>
<Color x:Key="StandardIcon">#AEAEAE</Color>
<!-- Default Text -->
<SolidColorBrush x:Key="TextColor" Color="{StaticResource ResourceKey=StandardContent}" />
<SolidColorBrush x:Key="TextHighlighted" Color="White" />
<!-- Buttons (Info/Mods/About/Options as well as More Info and Install/Update) -->
<SolidColorBrush x:Key="ButtonBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="ButtonOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="ButtonHighlightedBackground" Color="{DynamicResource ResourceKey=StandardHighlight}" />
<SolidColorBrush x:Key="ButtonClickedBackground" Color="{DynamicResource ResourceKey=StandardActive}" />
<SolidColorBrush x:Key="ButtonDisabledBackground" Color="{DynamicResource ResourceKey=StandardSecondary}" />
<SolidColorBrush x:Key="ButtonDangerBackground" Color="#ED172F" />
<!-- Page Buttons (Side of Main Page) -->
<SolidColorBrush x:Key="PageButtonBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="PageButtonOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="PageButtonHighlightedBackground" Color="{DynamicResource ResourceKey=StandardHighlight}" />
<SolidColorBrush x:Key="PageButtonClickedBackground" Color="{DynamicResource ResourceKey=StandardActive}" />
<SolidColorBrush x:Key="PageButtonDisabledBackground" Color="{DynamicResource ResourceKey=StandardSecondary}" />
<!-- Mod List -->
<SolidColorBrush x:Key="ModColumnBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="ModColumnBorderBrush" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="ModColumnHeaderHighlighted" Color="{DynamicResource ResourceKey=StandardHighlight}" />
<SolidColorBrush x:Key="ModListBackground" Color="#10FFFFFF" />
<SolidColorBrush x:Key="ModListBorderBrush" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="ModListItemHighlighted" Color="Transparent" />
<SolidColorBrush x:Key="ModListItemSelected" Color="{DynamicResource ResourceKey=StandardActive}" />
<!-- Combo Box (Version select) -->
<SolidColorBrush x:Key="ComboBoxBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="ComboBoxOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="ComboBoxHighlighted" Color="{DynamicResource ResourceKey=StandardHighlight}" />
<SolidColorBrush x:Key="ComboBoxSelected" Color="{DynamicResource ResourceKey=StandardActive}" />
<SolidColorBrush x:Key="ComboBoxClicked" Color="#A2A2A2" />
<SolidColorBrush x:Key="ComboBoxArrow" Color="White" />
<!-- Checkboxes (Mod List and Options) -->
<SolidColorBrush x:Key="CheckboxDefaultBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="CheckboxDefaultOutlineColor" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="CheckboxDisabledBackground" Color="#1A1A1A" />
<SolidColorBrush x:Key="CheckboxDisabledOutlineColor" Color="#2A2A2A" />
<SolidColorBrush x:Key="CheckboxDisabledTickColor" Color="#66FFFFFF" />
<SolidColorBrush x:Key="CheckboxHoveredBackground" Color="#696969" />
<SolidColorBrush x:Key="CheckboxHoveredTickColor" Color="White" />
<SolidColorBrush x:Key="CheckboxTickColor" Color="{StaticResource ResourceKey=StandardContent}" />
<SolidColorBrush x:Key="CheckboxPressedBackground" Color="#FFBFBFBF" />
<!-- Various important elements that need to be controlled independently -->
<SolidColorBrush x:Key="ModAssistantBackground" Color="{DynamicResource ResourceKey=StandardSecondary}" />
<SolidColorBrush x:Key="BottomStatusBarBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="BottomStatusBarOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="DirectoryBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="DirectoryOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<!-- Colors for the corresponding icons -->
<SolidColorBrush x:Key="InfoIconColor" Color="{DynamicResource ResourceKey=StandardIcon}" />
<SolidColorBrush x:Key="ModsIconColor" Color="{DynamicResource ResourceKey=StandardIcon}" />
<SolidColorBrush x:Key="AboutIconColor" Color="{DynamicResource ResourceKey=StandardIcon}" />
<SolidColorBrush x:Key="OptionsIconColor" Color="{DynamicResource ResourceKey=StandardIcon}" />
</ResourceDictionary>

View file

@ -0,0 +1,67 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- ModAssistant Light Pink Theme by Caeden117 -->
<!--Default text-->
<SolidColorBrush x:Key="TextColor" Color="#101010" />
<SolidColorBrush x:Key="TextHighlighted" Color="Black" />
<!--Buttons (Info/Mods/About/Options as well as More Info and Install/Update)-->
<SolidColorBrush x:Key="ButtonBackground" Color="#FFE5A3EC" />
<SolidColorBrush x:Key="ButtonOutline" Color="#FF640052" />
<SolidColorBrush x:Key="ButtonHighlightedBackground" Color="#FFFF84EE" />
<SolidColorBrush x:Key="ButtonClickedBackground" Color="Magenta" />
<SolidColorBrush x:Key="ButtonDisabledBackground" Color="#FFD477C8" />
<SolidColorBrush x:Key="ButtonDangerBackground" Color="#FF006E" />
<!-- Page Buttons (Side of Main Page) -->
<SolidColorBrush x:Key="PageButtonBackground" Color="#FFE5A3EC" />
<SolidColorBrush x:Key="PageButtonOutline" Color="#FF640052" />
<SolidColorBrush x:Key="PageButtonHighlightedBackground" Color="#FFFF84EE" />
<SolidColorBrush x:Key="PageButtonClickedBackground" Color="Magenta" />
<SolidColorBrush x:Key="PageButtonDisabledBackground" Color="#FFD477C8" />
<!--Mod List-->
<SolidColorBrush x:Key="ModColumnBackground" Color="#FFFFC1F4"/>
<SolidColorBrush x:Key="ModColumnBorderBrush" Color="Gray"/>
<SolidColorBrush x:Key="ModColumnHeaderHighlighted" Color="#FFFF86FF"/>
<SolidColorBrush x:Key="ModListBackground" Color="#FFFCDCFF" />
<SolidColorBrush x:Key="ModListItemHighlighted" Color="#FFF8B6FF"/>
<SolidColorBrush x:Key="ModListItemSelected" Color="#FFFF88F4"/>
<!--Combo Box (Version select)-->
<SolidColorBrush x:Key="ComboBoxBackground" Color="#FFE09EE0"/>
<SolidColorBrush x:Key="ComboBoxOutline" Color="#FF5D0048"/>
<SolidColorBrush x:Key="ComboBoxHighlighted" Color="#FF814D83"/>
<SolidColorBrush x:Key="ComboBoxSelected" Color="#FFF4ABFF"/>
<SolidColorBrush x:Key="ComboBoxClicked" Color="#FFFF63EA"/>
<SolidColorBrush x:Key="ComboBoxArrow" Color="Black"/>
<!--Checkboxes (Mod List and Options)-->
<SolidColorBrush x:Key="CheckboxDefaultBackground" Color="#FFAD55B6"/>
<SolidColorBrush x:Key="CheckboxDefaultOutlineColor" Color="#FFD664D1"/>
<SolidColorBrush x:Key="CheckboxDisabledBackground" Color="#FF8C4693"/>
<SolidColorBrush x:Key="CheckboxDisabledOutlineColor" Color="#2a2a2a"/>
<SolidColorBrush x:Key="CheckboxDisabledTickColor" Color="#FFC9C9C9"/>
<SolidColorBrush x:Key="CheckboxHoveredBackground" Color="#FFF29CFF"/>
<SolidColorBrush x:Key="CheckboxHoveredTickColor" Color="White"/>
<SolidColorBrush x:Key="CheckboxTickColor" Color="White"/>
<SolidColorBrush x:Key="CheckboxPressedBackground" Color="#FFFF80FF"/>
<!--Various important elements that need to be controlled independently-->
<SolidColorBrush x:Key="ModAssistantBackground" Color="#FFFAE5FF"/>
<SolidColorBrush x:Key="BottomStatusBarBackground" Color="#FFE288D6"/>
<SolidColorBrush x:Key="DirectoryBackground" Color="#FFE288D6"/>
<!--Colors for the corresponding icons.-->
<!--Info Default: #0DCAC8-->
<SolidColorBrush x:Key="InfoIconColor" Color="White"/>
<!--Mods Default: #833BCE-->
<SolidColorBrush x:Key="ModsIconColor" Color="White"/>
<!--About Default: #FF0000-->
<SolidColorBrush x:Key="AboutIconColor" Color="White"/>
<!--Options Default: #4E3BCE-->
<SolidColorBrush x:Key="OptionsIconColor" Color="White"/>
</ResourceDictionary>

View file

@ -0,0 +1,74 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- ModAssistant Light Theme by Caeden117 and lolPants -->
<!-- Standard Styles -->
<Color x:Key="StandardContent">#101010</Color>
<Color x:Key="StandardPrimary">#C8C8C8</Color>
<Color x:Key="StandardSecondary">#F3F3F3</Color>
<Color x:Key="StandardBorder">Gray</Color>
<Color x:Key="StandardHighlight">#AEAEAE</Color>
<Color x:Key="StandardActive">#C0C0C0</Color>
<!-- Default Text -->
<SolidColorBrush x:Key="TextColor" Color="#101010" />
<SolidColorBrush x:Key="TextHighlighted" Color="Black" />
<!-- Buttons (Info/Mods/About/Options as well as More Info and Install/Update) -->
<SolidColorBrush x:Key="ButtonBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="ButtonOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="ButtonHighlightedBackground" Color="{DynamicResource ResourceKey=StandardHighlight}" />
<SolidColorBrush x:Key="ButtonClickedBackground" Color="{DynamicResource ResourceKey=StandardActive}" />
<SolidColorBrush x:Key="ButtonDisabledBackground" Color="{DynamicResource ResourceKey=StandardSecondary}" />
<SolidColorBrush x:Key="ButtonDangerBackground" Color="#ED172F" />
<!-- Page Buttons (Side of Main Page) -->
<SolidColorBrush x:Key="PageButtonBackground" Color="Transparent" />
<SolidColorBrush x:Key="PageButtonOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="PageButtonHighlightedBackground" Color="#20000000" />
<SolidColorBrush x:Key="PageButtonClickedBackground" Color="{DynamicResource ResourceKey=StandardActive}" />
<SolidColorBrush x:Key="PageButtonDisabledBackground" Color="#50000000" />
<!-- Mod List -->
<SolidColorBrush x:Key="ModColumnBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="ModColumnBorderBrush" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="ModColumnHeaderHighlighted" Color="{DynamicResource ResourceKey=StandardHighlight}" />
<SolidColorBrush x:Key="ModListBackground" Color="#09000000" />
<SolidColorBrush x:Key="ModListBorderBrush" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="ModListItemHighlighted" Color="#BBBBBB" />
<SolidColorBrush x:Key="ModListItemSelected" Color="{DynamicResource ResourceKey=StandardActive}" />
<!-- Combo Box (Version select) -->
<SolidColorBrush x:Key="ComboBoxBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="ComboBoxOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="ComboBoxHighlighted" Color="{DynamicResource ResourceKey=StandardHighlight}" />
<SolidColorBrush x:Key="ComboBoxSelected" Color="{DynamicResource ResourceKey=StandardActive}" />
<SolidColorBrush x:Key="ComboBoxClicked" Color="#AAAAAA" />
<SolidColorBrush x:Key="ComboBoxArrow" Color="Black" />
<!-- Checkboxes (Mod List and Options) -->
<SolidColorBrush x:Key="CheckboxDefaultBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="CheckboxDefaultOutlineColor" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="CheckboxDisabledBackground" Color="#5A5A5A" />
<SolidColorBrush x:Key="CheckboxDisabledOutlineColor" Color="#4a4a4a" />
<SolidColorBrush x:Key="CheckboxDisabledTickColor" Color="#DDD" />
<SolidColorBrush x:Key="CheckboxHoveredBackground" Color="#909090" />
<SolidColorBrush x:Key="CheckboxHoveredTickColor" Color="White" />
<SolidColorBrush x:Key="CheckboxTickColor" Color="{StaticResource ResourceKey=StandardContent}" />
<SolidColorBrush x:Key="CheckboxPressedBackground" Color="#FFBFBFBF" />
<!-- Various important elements that need to be controlled independently -->
<SolidColorBrush x:Key="ModAssistantBackground" Color="{DynamicResource ResourceKey=StandardSecondary}" />
<SolidColorBrush x:Key="BottomStatusBarBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="BottomStatusBarOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="DirectoryBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="DirectoryOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<!-- Colors for page buttons -->
<SolidColorBrush x:Key="InfoIconColor" Color="#0DCAC8" />
<SolidColorBrush x:Key="ModsIconColor" Color="#833BCE" />
<SolidColorBrush x:Key="AboutIconColor" Color="#FF0000" />
<SolidColorBrush x:Key="OptionsIconColor" Color="#4E3BCE" />
</ResourceDictionary>

View file

@ -0,0 +1,91 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!--
ModAssistant Ugly Kulu-Ya-Ku Theme by Assistant
Feel free to use this as a template for designing your own themes for Mod Assistant.
The Color fields take in Hexadecimal RGB (#RRGGBB) or Hexadecimal ARGB (#AARRGGBB).
They can also take in common names like "Gray", "Maroon", "Magenta", "LimeGreen", etc.
For more information, see: https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.colors
You may set color variables like below in the Standard Styles section, or simply set the colors directly.
To reload your theme, exit and re-enter the Options menu.
Inspired by https://www.nexusmods.com/monsterhunterworld/mods/2080
william requested I make this theme. One time william requested a hug from pook. pook denied said request.
I then witnessed william hounding pook, until he siezed them by breaking their foot.
As pook agonized in the floor, they were ravished by william. I know better than to deny william's request.
-->
<!-- Standard Styles -->
<Color x:Key="StandardContent">#75f6ff</Color>
<Color x:Key="StandardPrimary">#4FC653</Color>
<Color x:Key="StandardSecondary">#7A2E63</Color>
<Color x:Key="StandardBorder">#75f6ff</Color>
<Color x:Key="StandardHighlight">#508F4E</Color>
<Color x:Key="StandardActive">#CA85B1</Color>
<Color x:Key="StandardIcon">#FF51B6</Color>
<!--Default text-->
<SolidColorBrush x:Key="TextColor" Color="{StaticResource ResourceKey=StandardContent}" />
<SolidColorBrush x:Key="TextHighlighted" Color="Black" />
<!--Buttons (Info/Mods/About/Options as well as More Info and Install/Update)-->
<SolidColorBrush x:Key="ButtonBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="ButtonOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="ButtonHighlightedBackground" Color="{DynamicResource ResourceKey=StandardHighlight}" />
<SolidColorBrush x:Key="ButtonClickedBackground" Color="{DynamicResource ResourceKey=StandardActive}" />
<SolidColorBrush x:Key="ButtonDisabledBackground" Color="{DynamicResource ResourceKey=StandardSecondary}" />
<SolidColorBrush x:Key="ButtonDangerBackground" Color="#FF006E" />
<!-- Page Buttons (Side of Main Page) -->
<SolidColorBrush x:Key="PageButtonBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="PageButtonOutline" Color="{DynamicResource ResourceKey=StandardBorder}" />
<SolidColorBrush x:Key="PageButtonHighlightedBackground" Color="{DynamicResource ResourceKey=StandardHighlight}" />
<SolidColorBrush x:Key="PageButtonClickedBackground" Color="{DynamicResource ResourceKey=StandardActive}" />
<SolidColorBrush x:Key="PageButtonDisabledBackground" Color="{DynamicResource ResourceKey=StandardSecondary}" />
<!--Mod List-->
<SolidColorBrush x:Key="ModColumnBackground" Color="{DynamicResource ResourceKey=StandardPrimary}"/>
<SolidColorBrush x:Key="ModColumnBorderBrush" Color="{DynamicResource ResourceKey=StandardPrimary}"/>
<SolidColorBrush x:Key="ModColumnHeaderHighlighted" Color="{DynamicResource ResourceKey=StandardHighlight}"/>
<SolidColorBrush x:Key="ModListBackground" Color="{DynamicResource ResourceKey=StandardPrimary}" />
<SolidColorBrush x:Key="ModListItemHighlighted" Color="{DynamicResource ResourceKey=StandardHighlight}"/>
<SolidColorBrush x:Key="ModListItemSelected" Color="{DynamicResource ResourceKey=StandardActive}"/>
<!--Combo Box (Version select)-->
<SolidColorBrush x:Key="ComboBoxBackground" Color="{DynamicResource ResourceKey=StandardPrimary}"/>
<SolidColorBrush x:Key="ComboBoxOutline" Color="{DynamicResource ResourceKey=StandardBorder}"/>
<SolidColorBrush x:Key="ComboBoxHighlighted" Color="{DynamicResource ResourceKey=StandardHighlight}"/>
<SolidColorBrush x:Key="ComboBoxSelected" Color="{DynamicResource ResourceKey=StandardActive}"/>
<SolidColorBrush x:Key="ComboBoxClicked" Color="{DynamicResource ResourceKey=StandardPrimary}"/>
<SolidColorBrush x:Key="ComboBoxArrow" Color="{DynamicResource ResourceKey=StandardBorder}"/>
<!--Checkboxes (Mod List and Options)-->
<SolidColorBrush x:Key="CheckboxDefaultBackground" Color="{DynamicResource ResourceKey=StandardPrimary}"/>
<SolidColorBrush x:Key="CheckboxDefaultOutlineColor" Color="{DynamicResource ResourceKey=StandardBorder}"/>
<SolidColorBrush x:Key="CheckboxDisabledBackground" Color="{DynamicResource ResourceKey=StandardSecondary}"/>
<SolidColorBrush x:Key="CheckboxDisabledOutlineColor" Color="{DynamicResource ResourceKey=StandardBorder}"/>
<SolidColorBrush x:Key="CheckboxDisabledTickColor" Color="{DynamicResource ResourceKey=StandardBorder}"/>
<SolidColorBrush x:Key="CheckboxHoveredBackground" Color="{DynamicResource ResourceKey=StandardHighlight}"/>
<SolidColorBrush x:Key="CheckboxHoveredTickColor" Color="{DynamicResource ResourceKey=StandardIcon}"/>
<SolidColorBrush x:Key="CheckboxTickColor" Color="{DynamicResource ResourceKey=StandardIcon}"/>
<SolidColorBrush x:Key="CheckboxPressedBackground" Color="{DynamicResource ResourceKey=StandardActive}"/>
<!--Various important elements that need to be controlled independently-->
<SolidColorBrush x:Key="ModAssistantBackground" Color="{DynamicResource ResourceKey=StandardIcon}"/>
<SolidColorBrush x:Key="BottomStatusBarBackground" Color="#BF489A"/>
<SolidColorBrush x:Key="DirectoryBackground" Color="#BF489A"/>
<!--Colors for the corresponding icons.-->
<!--Info Default: #0DCAC8-->
<SolidColorBrush x:Key="InfoIconColor" Color="{DynamicResource ResourceKey=StandardIcon}"/>
<!--Mods Default: #833BCE-->
<SolidColorBrush x:Key="ModsIconColor" Color="{DynamicResource ResourceKey=StandardIcon}"/>
<!--About Default: #FF0000-->
<SolidColorBrush x:Key="AboutIconColor" Color="{DynamicResource ResourceKey=StandardIcon}"/>
<!--Options Default: #4E3BCE-->
<SolidColorBrush x:Key="OptionsIconColor" Color="{DynamicResource ResourceKey=StandardIcon}"/>
</ResourceDictionary>