support user defined theme files in %appdata% (close #1267, #662)

This commit is contained in:
jhdxr
2018-12-23 00:30:31 +08:00
parent ab1efb0749
commit 84673f26f3

View File

@@ -22,10 +22,12 @@ namespace Wox.Core.Resource
private const string Folder = "Themes"; private const string Folder = "Themes";
private const string Extension = ".xaml"; private const string Extension = ".xaml";
private string DirectoryPath => Path.Combine(Constant.ProgramDirectory, Folder); private string DirectoryPath => Path.Combine(Constant.ProgramDirectory, Folder);
private string UserDirectoryPath => Path.Combine(Constant.DataDirectory, Folder);
public Theme() public Theme()
{ {
_themeDirectories.Add(DirectoryPath); _themeDirectories.Add(DirectoryPath);
_themeDirectories.Add(UserDirectoryPath);
MakesureThemeDirectoriesExist(); MakesureThemeDirectoriesExist();
var dicts = Application.Current.Resources.MergedDictionaries; var dicts = Application.Current.Resources.MergedDictionaries;
@@ -94,6 +96,7 @@ namespace Wox.Core.Resource
if (_oldTheme != theme) if (_oldTheme != theme)
{ {
dicts.Remove(_oldResource); dicts.Remove(_oldResource);
//fixme if something goes wrong here
var newResource = GetResourceDictionary(); var newResource = GetResourceDictionary();
dicts.Add(newResource); dicts.Add(newResource);
_oldResource = newResource; _oldResource = newResource;