|
@@ -18,7 +18,7 @@ namespace Avalonia.Themes.Fluent
|
|
|
/// <summary>
|
|
|
/// Includes the fluent theme in an application.
|
|
|
/// </summary>
|
|
|
- public class FluentTheme : IStyle, IResourceProvider
|
|
|
+ public class FluentTheme : AvaloniaObject, IStyle, IResourceProvider
|
|
|
{
|
|
|
private readonly Uri _baseUri;
|
|
|
private Styles _fluentDark = new();
|
|
@@ -26,7 +26,6 @@ namespace Avalonia.Themes.Fluent
|
|
|
private Styles _sharedStyles = new();
|
|
|
private bool _isLoading;
|
|
|
private IStyle? _loaded;
|
|
|
- private FluentThemeMode _mode;
|
|
|
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of the <see cref="FluentTheme"/> class.
|
|
@@ -48,31 +47,32 @@ namespace Avalonia.Themes.Fluent
|
|
|
InitStyles(_baseUri);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public static readonly StyledProperty<FluentThemeMode> ModeProperty =
|
|
|
+ AvaloniaProperty.Register<FluentTheme, FluentThemeMode>(nameof(Mode));
|
|
|
/// <summary>
|
|
|
/// Gets or sets the mode of the fluent theme (light, dark).
|
|
|
/// </summary>
|
|
|
public FluentThemeMode Mode
|
|
|
{
|
|
|
- get => _mode;
|
|
|
- set
|
|
|
+ get => GetValue(ModeProperty);
|
|
|
+ set => SetValue(ModeProperty, value);
|
|
|
+ }
|
|
|
+ protected override void OnPropertyChanged<T>(AvaloniaPropertyChangedEventArgs<T> change)
|
|
|
+ {
|
|
|
+ base.OnPropertyChanged(change);
|
|
|
+ if (change.Property == ModeProperty)
|
|
|
{
|
|
|
- if (_mode != value)
|
|
|
+ if (Mode == FluentThemeMode.Dark)
|
|
|
{
|
|
|
- _mode = value;
|
|
|
- if (_mode == FluentThemeMode.Dark)
|
|
|
- {
|
|
|
- (Loaded as Styles)![1] = _fluentDark[0];
|
|
|
- (Loaded as Styles)![2] = _fluentDark[1];
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- (Loaded as Styles)![1] = _fluentLight[0];
|
|
|
- (Loaded as Styles)![2] = _fluentLight[1];
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
+ (Loaded as Styles)![1] = _fluentDark[0];
|
|
|
+ (Loaded as Styles)![2] = _fluentDark[1];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ (Loaded as Styles)![1] = _fluentLight[0];
|
|
|
+ (Loaded as Styles)![2] = _fluentLight[1];
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|