diff --git a/src/Controls/src/Core/Application/Application.cs b/src/Controls/src/Core/Application/Application.cs index 73db0faef7e5..4d0c7d73c0b3 100644 --- a/src/Controls/src/Core/Application/Application.cs +++ b/src/Controls/src/Core/Application/Application.cs @@ -256,6 +256,7 @@ void TriggerThemeChangedActual() OnParentResourcesChanged([new KeyValuePair(AppThemeBinding.AppThemeResource, newTheme)]); _weakEventManager.HandleEvent(this, new AppThemeChangedEventArgs(newTheme), nameof(RequestedThemeChanged)); + OnPropertyChanged(nameof(UserAppTheme)); } finally { diff --git a/src/Core/src/Handlers/Application/ApplicationHandler.Android.cs b/src/Core/src/Handlers/Application/ApplicationHandler.Android.cs index 5304c02b1b5e..3adbe79a23d4 100644 --- a/src/Core/src/Handlers/Application/ApplicationHandler.Android.cs +++ b/src/Core/src/Handlers/Application/ApplicationHandler.Android.cs @@ -30,5 +30,10 @@ public static partial void MapCloseWindow(ApplicationHandler handler, IApplicati activity.Finish(); } } + + internal static partial void MapAppTheme(ApplicationHandler handler, IApplication application) + { + application?.UpdateNightMode(); + } } } \ No newline at end of file diff --git a/src/Core/src/Handlers/Application/ApplicationHandler.cs b/src/Core/src/Handlers/Application/ApplicationHandler.cs index 334d38d33748..16498c9d6621 100644 --- a/src/Core/src/Handlers/Application/ApplicationHandler.cs +++ b/src/Core/src/Handlers/Application/ApplicationHandler.cs @@ -24,6 +24,9 @@ public partial class ApplicationHandler public static IPropertyMapper Mapper = new PropertyMapper(ElementMapper) { +#if ANDROID || IOS + [nameof(IApplication.UserAppTheme)] = MapAppTheme, +#endif }; public static CommandMapper CommandMapper = new(ElementCommandMapper) @@ -83,5 +86,9 @@ protected override PlatformView CreatePlatformElement() => /// The associated instance. /// The associated command arguments. public static partial void MapCloseWindow(ApplicationHandler handler, IApplication application, object? args); + +#if ANDROID || IOS + internal static partial void MapAppTheme(ApplicationHandler handler, IApplication application); +#endif } } \ No newline at end of file diff --git a/src/Core/src/Handlers/Application/ApplicationHandler.iOS.cs b/src/Core/src/Handlers/Application/ApplicationHandler.iOS.cs index 9498df89b5ee..e0b9cb075ec5 100644 --- a/src/Core/src/Handlers/Application/ApplicationHandler.iOS.cs +++ b/src/Core/src/Handlers/Application/ApplicationHandler.iOS.cs @@ -44,6 +44,11 @@ public static partial void MapCloseWindow(ApplicationHandler handler, IApplicati } } + internal static partial void MapAppTheme(ApplicationHandler handler, IApplication application) + { + application?.UpdateUserInterfaceStyle(); + } + #if __MACCATALYST__ class NSApplication {