无需手动样式即可切换明暗模式

问题描述 投票:0回答:1

我用 Xamarin.forms 编写一个应用程序,我想在浅色和深色模式之间切换。 我想要一个开关来在两种模式之间切换。

因此,每次切换开关时,我都会设置 App.Current.UserAppTheme=OSAppTheme.Dark 或 App.Current.UserAppTheme=OSAppTheme.Light。

当触发 Application.Current.RequestedThemeChanged 时,此设置正确,并且如果我检查 UserAppTheme,我会得到正确的值。 我使用 AppThemeBinding 手动设置的属性发生了变化。但例如背景保持不变。

如果我在手机设置中更改主题并重新启动应用程序,则会显示不同的背景颜色。

那么是否可以让操作系统选择颜色,或者我是否必须创建和设置固定样式表?

android xamarin.forms android-dark-theme
1个回答
0
投票

那么是否可以让操作系统选择颜色

当然,你可以设置你想要的颜色。

步骤如下:

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>

更多信息,您可以查看文档:主题应用程序

您还可以在这里查看官方示例:SystemThemesDemoThemingDemo

© www.soinside.com 2019 - 2024. All rights reserved.