我用 Xamarin.forms 编写一个应用程序,我想在浅色和深色模式之间切换。 我想要一个开关来在两种模式之间切换。
因此,每次切换开关时,我都会设置 App.Current.UserAppTheme=OSAppTheme.Dark 或 App.Current.UserAppTheme=OSAppTheme.Light。
当触发 Application.Current.RequestedThemeChanged 时,此设置正确,并且如果我检查 UserAppTheme,我会得到正确的值。 我使用 AppThemeBinding 手动设置的属性发生了变化。但例如背景保持不变。
如果我在手机设置中更改主题并重新启动应用程序,则会显示不同的背景颜色。
那么是否可以让操作系统选择颜色,或者我是否必须创建和设置固定样式表?
那么是否可以让操作系统选择颜色
当然,你可以设置你想要的颜色。
步骤如下:
1.定义文件中的颜色
App.xaml
.
例如,您可以添加浅色和深色:
<Application.Resources>
<!-- Light colors -->
<Color x:Key="LightPageBackgroundColor">Yellow</Color>
<!-- Dark colors -->
<Color x:Key="DarkPageBackgroundColor">Red</Color>
</Application.Resources>
2.然后,在您的应用程序中,您可以按如下方式设置ContentPage的BackgroundColor:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:SystemThemesDemo"
x:Class="SystemThemesDemo.Views.UserSummaryPage"
Title="User Summary"
BackgroundColor="{AppThemeBinding Light={StaticResource LightPageBackgroundColor}, Dark={StaticResource DarkPageBackgroundColor}}">
</ContentPage>
更多信息,您可以查看文档:主题应用程序。
您还可以在这里查看官方示例:SystemThemesDemo 和 ThemingDemo。