作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
现在,iOS 13和 Android Q允许用户在操作系统级别启用暗模式,我如何在 Xamarin.Forms 中检查它?
我已经在我的 Xamarin.Forms 项目中创建了它,但我不确定如何从 Xamarin.iOS 和 Xamarin.Android 检索值。
IEnvironment.cs
using System.Threading.Tasks;
namespace MyNamespace
{
public interface IEnvironment
{
Theme GetOperatingSystemTheme();
Task<Theme> GetOperatingSystemThemeAsync();
}
public enum Theme { Light, Dark }
}
using Xamarin.Forms;
namespace MyNamespace
{
public App : Application
{
// ...
protected override async void OnStart()
{
base.OnStart();
Theme theme = DependencyService.Get<IEnvironment>().GetOperatingSystemTheme();
SetTheme(theme);
}
protected override async void OnResume()
{
base.OnResume();
Theme theme = DependencyService.Get<IEnvironment>().GetOperatingSystemTheme();
SetTheme(theme);
}
void SetTheme(Theme theme)
{
//Handle Light Theme & Dark Theme
}
}
}
最佳答案
截至 2020 年 4 月的更新:
不再需要使用特定于平台的服务来检查 Xamarin.Forms 中的亮/暗模式。
我们现在可以通过以下方式直接获取当前主题:
OSAppTheme currentTheme = Application.Current.RequestedTheme;
哪里
RequestedTheme
属性返回
OSAppTheme
枚举成员:
Unspecified
,
Dark
, 或
Light
.
关于xamarin.forms - 如何在 Xamarin.Forms 中检查暗模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57879523/
我是一名优秀的程序员,十分优秀!