Xamarin.forms 如何在Xamarin Forms UWP上设置黑暗主题?

Xamarin.forms 如何在Xamarin Forms UWP上设置黑暗主题?,xamarin.forms,uwp,Xamarin.forms,Uwp,我在xamarin窗体、Android和iOS上使用,当手机使用黑暗主题时,它会改变以使用相同的主题。但当我在UWP上运行应用程序时,xamarin表单总是使用轻主题。你能告诉我如何强制使用黑暗主题吗?我曾尝试在App.cs(UWP)的构造函数上手动设置暗主题,就像我在本机UWP应用程序上所做的那样,但它已设置,但Xamarin表单继续使用亮主题。有什么想法吗 复制它的步骤。 创建MasterDetail模板 在UWP的App.cs的构造函数上,添加了以下行: “RequestedTheme=

我在xamarin窗体、Android和iOS上使用,当手机使用黑暗主题时,它会改变以使用相同的主题。但当我在UWP上运行应用程序时,xamarin表单总是使用轻主题。你能告诉我如何强制使用黑暗主题吗?我曾尝试在App.cs(UWP)的构造函数上手动设置暗主题,就像我在本机UWP应用程序上所做的那样,但它已设置,但Xamarin表单继续使用亮主题。有什么想法吗

复制它的步骤。

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

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


谢谢

如果要手动设置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);

请共享您的代码和您尝试过的内容检查此可能重复的添加步骤以重现我的情况。您是否尝试删除请求的主题,然后更改系统主题。你的应用程序会对此做出反应吗?是的,我试过了,而且。。。。Android和iOS运行正常,但UWP继续使用Light Themes非常有趣……这是一个进步。现在,我得到的所有页面都是黑色主题,只有一个例外。在xamarin forms MasterDetailPage上,“菜单”是暗主题,但主页和顶部栏是亮主题。我尝试在页面之前、页面中和之后(从其他页面)执行您的函数,并继续使用light主题。没有MasterDetailPage的contentpage应用程序的其他页面工作正常。为了在masterdetailpage上强制使用主题,您有什么想法吗?谢谢masterdetail页面的BarBackgroundColor不是主题颜色,我们无法使用上述代码更改它。但是你可以手动编辑它,你可以在App.xaml文件中找到它。是的,这个条是一个小问题,我将创建另一个项目来识别到底是什么问题。我有masterdetailpage,详细信息如何是一个选项卡式页面,它是以浅主题显示的,而主控(菜单)和其他页面是以暗主题显示的。我的选项卡式页面和masterdetailpage的问题是我的计算机…。硬盘已经损坏并停止工作…我必须安装一个新的硬盘,重新安装Windows和VS,瞧,你的解决方案工作得很好。非常感谢。