如何在Xamarin Forms UWP上设置深色主题?

时间:2020-01-27 09:08:23

标签: xamarin.forms uwp

我在xamarin表单以及Android和iOS上使用,并且当电话使用深色主题时,都会更改以使用相同主题。但是,当我在UWP上运行应用程序时,xamarin表单始终可以使用Light主题。您能告诉我如何强制使用深色主题吗?我已经尝试像在本机UWP应用程序上一样在App.cs(UWP)的构造函数上手动设置了深色主题,但是已经设置好了,但是Xamarin表单继续使用Light主题。有想法吗?

复制步骤。

  • 创建MasterDetail模板
  • 在UWP的App.cs的构造函数中,添加了以下行: “ RequestedTheme = Windows.UI.Xaml.ApplicationTheme.Dark;”

  • 执行应用程序和:iOS菜单和状态栏为暗。 Android 10,菜单和状态栏为暗(已在realme上尝试过)。 Windows 10,菜单为白色。

谢谢

1 个答案:

答案 0 :(得分:1)

如果要手动设置uwp主题,请在uwp客户端项目中调用以下方法。

public static class ThemeSelectorService
{

    public static async Task SetRequestedThemeAsync(ElementTheme Theme)
    {
        foreach (var view in CoreApplication.Views)
        {
            await view.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                if (Window.Current.Content is FrameworkElement frameworkElement)
                {
                    frameworkElement.RequestedTheme = Theme;
                }
            });
        }
    }


}

用法

ThemeSelectorService.SetRequestedThemeAsync(ElementTheme.Dark);