Xamarin.Forms - 在运行时在深色和浅色主题之间切换

2024-05-16

1 - 是否可以使用 2.3.x 版本中引入的 Xamarin.Forms 主题(下面的链接)在浅色和深色主题之间切换。有什么解决办法吗?https://developer.xamarin.com/guides/xamarin-forms/user-interface/themes/ https://developer.xamarin.com/guides/xamarin-forms/user-interface/themes/

2 - 我还看到此版本自推出以来一直处于预览状态。是否存在任何问题,我们无法在生产中使用它?


接受的答案不符合Microsoft 演示的约定 https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/themes/.

假设您已经安装了这些软件包,Xamarin.Forms.Themes.Base https://www.nuget.org/packages/Xamarin.Forms.Theme.Base/, Xamarin.Forms.Themes.Light https://www.nuget.org/packages/Xamarin.Forms.Theme.Light/1.0.0.43-pre1, and Xamarin.Forms.Themes.Dark https://www.nuget.org/packages/Xamarin.Forms.Theme.Dark/1.0.0.43-pre1, 和你的App.xaml好像,

<?xml version="1.0" encoding="utf-8" ?>
<Application 
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:light="clr-namespace:Xamarin.Forms.Themes;assembly=Xamarin.Forms.Theme.Light"
    xmlns:dark="clr-namespace:Xamarin.Forms.Themes;assembly=Xamarin.Forms.Theme.Dark"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="MyNamespace.MyApp">
    <Application.Resources>
        <ResourceDictionary MergedWith="light:LightThemeResources">
            ...
        </ResourceDictionary>
    </Application.Resources>
</Application>

您可以使用以下命令在运行时更改主题:

public enum Themes
{
    Dark,
    Light
}

var origin = App.Current.Resources;
switch (theme)
{
    case Themes.Dark:
        origin.MergedWith = typeof(DarkThemeResources);
        break;
    case Themes.Light:
        origin.MergedWith = typeof(LightThemeResources);
        break;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xamarin.Forms - 在运行时在深色和浅色主题之间切换 的相关文章

  • 在 Xamarin.Forms 中编写设备平台特定的代码

    我有以下内容Xamarin Forms ContentPage类结构 public class MyPage ContentPage public MyPage do work to initialize MyPage public voi
  • ITMS-90909:Xamarin Forms 应用程序中不推荐使用 iOS 的 API

    任何人都可以建议如何处理我将 Xamarin Forms 应用程序提交到 iOS 商店时收到的这条消息吗 对可能的重复进行评论 这个问题之前曾被问过 但没有得到解答 我认为不存在已答复的重复项 这是一个已知问题 最近由 Xamarin 团队
  • MT5212:本机链接失败,重复符号:'_OBJC_IVAR_$_FIRInstanceID._tokenManager'

    我通过绑定本机目标 c 库创建了 iOS dll 文件 直到现在一切都工作正常 xamarin ios 应用程序也工作正常 现在 我已在本机 Objective C 库中添加了 Firebase 框架 Firebase Auth 数据库 分
  • 如何在 Xamarin Forms 的 Microchart 中添加 2 行

    我现在正在使用 Xamarin Forms 并尝试使用 Microchart 我想在一个折线图中显示 2 条线 以便我可以比较它们 但现在我不能在一张图表中同时放入2条线 有什么解决办法吗 非常感谢 你可以使用 hack 独立创建两个图表并
  • 来自应用程序中心的 Android 11 设备上的应用程序未安装错误

    我正在研究Xamarin Forms应用程序 改变后目标SdkVersion to 30并使用最新的 sdk 11 1 在 appcenter 上构建应用程序 我收到错误App not installed仅在安卓11设备 如果我改变目标Sd
  • 使用 Prism 在 Xamarin Forms 的后台服务中实现依赖注入

    我在我的 xamarin 表单项目中使用 Prism 我能够在我的视图模型中使用依赖注入 构造函数注入 没有任何问题 我还利用后台服务在后台推送长时间运行的任务 如何做我在后台服务中注入依赖项 当我尝试将接口对象作为参数传递给构造函数 Sy
  • 如何在Android上的Xamarin.Forms中的NavigationBar左侧添加ToolbarItem?

    I need to have关闭button 在本例中 在左侧 of 导航栏 如下 我只需要弹出窗口 因此其他元素 导航不存在潜在问题 谷歌对此有一些建议 但我只看到了 iOS 示例 这并不是一个需要处理的大问题 iOS custom re
  • 忽略 Xamarin.Forms (PCL) 中的 SSL 证书错误

    有没有办法做类似这里描述的事情 https stackoverflow com a 2675183 https stackoverflow com a 2675183但在 Xamarin Forms PCL 应用程序中 我正在使用 Http
  • 在 Xcode 上创建配置文件

    我正在尝试在 iPhone 上调试应用程序 Xamarin Forms 我已经在我的 Windows PC 上安装了 Visual Studio 我正在其上编写应用程序 并在我的 Mac 上安装了 Visual Studio 和 Xcode
  • 从 Xamarin Forms 的输入控件中删除下划线

    我是 Xamarin Forms 的新手 正在开发登录表单并使用 Material Design IVisual 我创建了一个自定义 Entry 类并继承它MaterialEntryRenderer来定制它 我想要实现的目标是删除下划线En
  • Xamarin Dim 页面(主详细信息页面)

    因此 对于 Android 当显示主从页面的母版页时 母版页会被 黑色暗淡 视图覆盖 因此很容易用眼睛区分这两个页面 在 iOS 中 详细信息页面不会变暗 因此更难区分视图 有没有办法用 黑色半透明 的 BoxView 或 Frame 覆盖
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • Xamarin.Forms:Oxyplot 占据整个页面

    我已在 Xamarin Forms 中使用 oxyplot 成功生成了一个绘图 但我无法阻止 oxyplot 占据整个页面 我在轮播中的其他页面上使用 stacklayout 并在每个页面上有一个横幅作为嵌入的 stacklayout 并希
  • 如何在 Xamarin.Forms 上使用 System.Data.SQLite Interop.dll?

    每次尝试运行移动应用程序时 我都会遇到以下问题 System DllNotFoundException SQLite Interop dll assembly
  • 需要从 Xamarin 中的选取器中选择至少一项

    在我的应用程序中 有一个选择器和按钮 我想要两件事 需要从选取器中选择至少一项 否则将无法单击按钮 例如就像HTML 中的必需属性 如果值为提供者1 然后导航到此页面 否则如果提供商2 然后导航至此页面 视图中选择器和按钮的代码
  • Xamarin.Forms 实现 AndHud 和 BTProgressHud

    谁能向我指出一个 Xamarin forms 示例 该示例在 Android 上使用 AndHud 在 iOS 上使用 BTProgressHud 或类似的东西 我知道这里有 ACR Xamarin Forms 示例https github
  • Android应用程序是否动态更改其目标API级别

    我有一个针对 Android API 级别 30 Android 11 的 Xamarin Forms 应用程序 其中安装了 Xamarin Twilio AudioSwitch v1 1 3 该应用程序可在 Play 商店中使用 并且在
  • AbsoluteLayout - 测量标签高度而不将标签放置在 UI 上

    我在 AbsoluteLayout 中手动定位标签 为了正确地做到这一点 我想在将标签放置在用户界面上之前知道标签的高度 我找到了这个解决方案 但并非没有实际放置标签 public double MeasureLabelHeight str
  • 打开位置设置页面或提示用户启用位置

    我一直在绞尽脑汁 徒劳地谷歌搜索 我正在尝试找到一种方法来提示用户通过直接进入设置页面或仅点击屏幕上的 是 来切换位置 我见过的所有代码似乎都不起作用 有人有有效的方法吗 一个详细的例子将不胜感激 谢谢 我对 Xamarin 开发非常陌生
  • Xamarin.Forms:独立于平台的应用程序菜单

    我正在编写 Xamarin Forms 桌面应用程序 最终希望以 MacOS 和 Windows 为目标 Xamarin Forms 是否有任何独立于平台的机制可用于构建应用程序菜单 即您可以在其中找到 文件 编辑 查看 等的菜单 并且出现

随机推荐