我有这样的场景:具有两个主题Light和Dark。我从viewmodel绑定要添加什么主题。我只是不知道如何从设备上获取时间并进行组织。每天晚上7点以后,我需要将主题更改为Dark,默认情况下为Light。如何组织?
我建议您在App.xaml.cs
,应用程序构造函数和Start / Resume方法中创建一个属性,验证一天中的时间,然后在ViewModel上可以访问该值
App.xaml.cs:
public bool IsDarkTheme;
public App()
{
InitializeComponent();
SetTheme();
MainPage = new MainPage();
}
public void SetTheme()
{
TimeSpan day = DateTime.Now.TimeOfDay;
if (!(day.Hours < 19 && day.Hours > 6))
{
IsDarkTheme = true;
}
}
protected override void OnStart()
{
// Handle when your app starts
SetTheme();
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
SetTheme();
}
您可以这样访问ViewModel:
App.IsDarkTheme