Скриншоты:
Светлый режим:

Темный Режим:

Я использую приведенный ниже код для изменения режима.
Код: Выделить всё
public async void ChangetoLight(object sender, EventArgs e)
{
try
{
WeakReferenceMessenger.Default.Send(new ModeChangeMessage("modechanged"));
}
catch (Exception exc)
{
System.Diagnostics.Debug.WriteLine("Exception:>>" + exc);
}
}
public async void ChangetoDark(object sender, EventArgs e)
{
try
{
WeakReferenceMessenger.Default.Send(new ModeChangeMessage("modechanged"));
}
catch (Exception exc)
{
System.Diagnostics.Debug.WriteLine("Exception:>>" + exc);
}
}
Код: Выделить всё
WeakReferenceMessenger.Default.Register(this, (r, m) =>
{
if (m.Value == "modechanged")
{
SetMode();
}
});
private void SetMode()
{
try
{
mode = Preferences.Default.Get("mode", "light");
if (mode == "light")
{
LightMode();
}
else if (mode == "dark")
{
DarkMode();
}
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine("Exception:>>" + e);
Preferences.Default.Set("mode", "light");
mode = "light";
LightMode();
}
}
private void LightMode()
{
home_layout.BackgroundColor = Colors.White;
homelistview.BackgroundColor = Colors.White;
}
private void DarkMode()
{
home_layout.BackgroundColor = Color.FromArgb("#434343");
homelistview.BackgroundColor = Color.FromArgb("#434343");
}
ListView XAML:
Код: Выделить всё
Обновить
Я создал образец проекта и загрузил его здесь. Нажмите на любую опцию и измените режим. Пользовательский интерфейс не обновляется в режиме LIVE, но обновляется при повторном открытии приложения.
Мы попытались установить цвет фона в соответствии с вашим предложением, но безуспешно. Пожалуйста, проверьте скриншот ниже.
Ожидаемый пользовательский интерфейс:
[img]https://i. sstatic.net/2fs8Gi3M.png[/img]
Текущий пользовательский интерфейс:
[img]https: //i.sstatic.net/E1A4xFZP.png[/img]
Подробнее здесь: https://stackoverflow.com/questions/784 ... os-platfor