Skip to content

Commit f31ebf8

Browse files
committed
Fix: ColorTheme in standalone app is not applied on the fly.
1 parent 8ccbbe7 commit f31ebf8

File tree

4 files changed

+29
-16
lines changed

4 files changed

+29
-16
lines changed

src/ResXManager/Configuration.cs

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
namespace ResXManager
22
{
3+
using System;
34
using System.Collections.ObjectModel;
45
using System.ComponentModel;
56
using System.Composition;
@@ -10,26 +11,14 @@
1011

1112
using ResXManager.Infrastructure;
1213
using ResXManager.Model;
13-
using ResXManager.Properties;
1414

1515
using TomsToolbox.Essentials;
1616
using TomsToolbox.Wpf;
1717

18-
public enum ColorTheme
19-
{
20-
[LocalizedDisplayName(StringResourceKey.ColorTheme_System)]
21-
System,
22-
23-
[LocalizedDisplayName(StringResourceKey.ColorTheme_Light)]
24-
Light,
25-
26-
[LocalizedDisplayName(StringResourceKey.ColorTheme_Dark)]
27-
Dark
28-
}
29-
3018
[Export(typeof(IConfiguration))]
19+
[Export(typeof(IStandaloneConfiguration))]
3120
[Shared]
32-
public class StandaloneConfiguration : Configuration
21+
internal class StandaloneConfiguration : Configuration, IStandaloneConfiguration
3322
{
3423
private readonly Collection<ResourceDictionary> _colorThemeResourceContainer;
3524

@@ -66,6 +55,8 @@ private void OnColorThemeChanged()
6655
case ColorTheme.Dark:
6756
_colorThemeResourceContainer.Add(new ResourceDictionary { Source = GetType().Assembly.GeneratePackUri("Themes/DarkTheme.xaml") });
6857
break;
58+
default:
59+
throw new ArgumentOutOfRangeException();
6960
}
7061
}
7162
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
namespace ResXManager
2+
{
3+
using ResXManager.Properties;
4+
5+
public enum ColorTheme
6+
{
7+
[LocalizedDisplayName(StringResourceKey.ColorTheme_System)]
8+
System,
9+
10+
[LocalizedDisplayName(StringResourceKey.ColorTheme_Light)]
11+
Light,
12+
13+
[LocalizedDisplayName(StringResourceKey.ColorTheme_Dark)]
14+
Dark
15+
}
16+
17+
public interface IStandaloneConfiguration
18+
{
19+
ColorTheme ColorTheme { get; set; }
20+
}
21+
}

src/ResXManager/ResXManager.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
<SubType>Designer</SubType>
9090
</ApplicationDefinition>
9191
<Compile Include="Configuration.cs" />
92+
<Compile Include="IStandaloneConfiguration.cs" />
9293
<Compile Include="MainView.xaml.cs">
9394
<DependentUpon>MainView.xaml</DependentUpon>
9495
</Compile>

src/ResXManager/ThemeConfigurationViewModel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
[Shared]
1414
internal class ColorThemeConfigurationViewModel : ObservableObject
1515
{
16-
public ColorThemeConfigurationViewModel(StandaloneConfiguration configuration)
16+
public ColorThemeConfigurationViewModel(IStandaloneConfiguration configuration)
1717
{
1818
Configuration = configuration;
1919
}
2020

21-
public StandaloneConfiguration Configuration { get; }
21+
public IStandaloneConfiguration Configuration { get; }
2222
}
2323
}

0 commit comments

Comments
 (0)