App Settings Themes - AngryCarrot789/MemoryEngine360 GitHub Wiki
Themes Configuration
This page allows you to fully customize the look of Memory Engine 360. The tree contains theme entries, which have a ThemeKey and InheritFromKey, as well as a colour value.
Theme entries are grouped, to make it easier to find things.
Theme Keys
Memory Engine uses Avalonia, which is based on WPF, which uses a resource system where keys map to a value, and in this case, those keys map to colour values (IBrush specifically).
For example, ABrush.MemEngine.MainView.Background
is a theme key that the background of the engine window uses, so when the value that key maps to changes, the background changes.
Inherit From
You can make a theme key "inherit" from another theme key. ABrush.MemEngine.MainView.Background
by default inherits from ABrush.Tone3.Background.Static
(which is a standard brush for the PFXToolKitUI, see below for more info).
So whenever ABrush.Tone3.Background.Static
changes, it updates any theme key that inherits from it (ABrush.MemEngine.MainView.Background
being one of them). You can right click a theme entry to show which keys inherit from a particular key.
In the tree, sometimes there'll be a blue or yellow indicator. The indicator just tells you it has an inherit from key. Specifically, blue tells you the current theme has defined the inheritance, and yellow means a base theme has defined it. When you change the inherited key that was defined by a base theme, it will change from yellow to blue, since now your theme defines it.
Base and Controls groups
These are the "common" theme entries.
Base
Tone0, 1, 2 and 3 are typically background tones, but are also used on controls with panel-like backgrounds, like text boxes.
Tone 4 and 5 are typically used for control backgrounds like buttons
Every tone after that is just there for the heck of it, but sometimes they are used (e.g. for separator backgrounds)
Controls
These theme entries are used by most if not all controls in the program. They all inherit from entries in the Base group.
By adjusting the entries in the Controls group, you can generally modify most occurrences of that specific control. However, sometimes the background/borders of controls are modified to use lighter tones (in relation to the dark theme), as in, maybe using Tone6 instead of Tone5.