Приложение MAUI мигает белым между сменами страниц в темной темеC#

Место общения программистов C#
Ответить
Anonymous
 Приложение MAUI мигает белым между сменами страниц в темной теме

Сообщение Anonymous »

В нашем приложении MAUI для поддержки темного режима мы установили для всех элементов ContentPage в xaml следующее значение:
BackgroundColor="{AppThemeBinding Light=White, Dark=Black}"

Это работает, но при смене страниц экран на короткое время становится белым при первой загрузке страницы, а затем становится черным. Белый цвет сохраняется примерно полсекунды, но, очевидно, очень дезориентирует тех, кто использует темный режим.
Стоит отметить, что мы не используем следующий распространенный метод для изменения страниц, поскольку он не используется. обеспечить желаемую гибкость:
Shell.Current.GoToAsync(nameof(MyApp.View.MyPage));

Но вместо этого во всем приложении мы используем следующий метод для изменения страниц, что может повлиять на проблему:
Application.Current.MainPage = new MyPage();

Что мы пытались исправить с мерцанием
В App.xaml (это не решило проблему) :




В MauiProgram.cs (это тоже не решило проблему):
Microsoft.Maui.Handlers.PageHandler.Mapper.AppendToMapping(nameof(Page), (handler, view) =>
{
handler.PlatformView.SetBackgroundColor(
App.CurrentTheme == AppTheme.Dark ?
AndroidGraphics.Color.Black : AndroidGraphics.Color.White);
});

Еще одна попытка в MauiProgram.cs не решила проблему:
Microsoft.Maui.Handlers.WindowHandler.Mapper.AppendToMapping(nameof(IWindow), (handler, view) =>
{
var activity = Platform.CurrentActivity;
activity?.Window?.DecorView?.SetBackgroundColor(App.CurrentTheme == AppTheme.Dark ?
AndroidGraphics.Color.Black : AndroidGraphics.Color.White);
});


Подробнее здесь: https://stackoverflow.com/questions/791 ... dark-theme
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»