首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UWP如何让主题资源响应RequestedTheme

UWP(Universal Windows Platform)是一种应用程序开发框架,用于创建适用于多种Windows设备的应用程序。UWP应用程序可以在各种设备上运行,包括PC、手机、平板电脑、Xbox等。

在UWP中,主题资源是一种用于定义应用程序外观的重要元素。它可以根据用户的偏好或应用程序的需求来改变应用程序的外观,例如颜色、字体、图标等。主题资源可以通过在应用程序的XAML文件中使用资源字典来定义。

要让主题资源响应RequestedTheme,可以按照以下步骤进行操作:

  1. 在应用程序的App.xaml文件中,定义两个资源字典,分别用于浅色主题和深色主题。可以使用SolidColorBrush等元素定义颜色资源,使用FontFamily等元素定义字体资源。
代码语言:txt
复制
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.ThemeDictionaries>
            <ResourceDictionary x:Key="Light">
                <!-- 定义浅色主题资源 -->
            </ResourceDictionary>
            <ResourceDictionary x:Key="Dark">
                <!-- 定义深色主题资源 -->
            </ResourceDictionary>
        </ResourceDictionary.ThemeDictionaries>
    </ResourceDictionary>
</Application.Resources>
  1. 在应用程序的页面或控件中,使用DynamicResource绑定需要根据主题变化的资源。
代码语言:txt
复制
<TextBlock Text="Hello World!" Foreground="{DynamicResource MyTextBrush}" />
  1. 在应用程序的代码中,通过检测RequestedTheme属性的值来切换主题资源。
代码语言:txt
复制
if (Application.Current.RequestedTheme == ApplicationTheme.Light)
{
    // 切换到浅色主题
    Application.Current.Resources.ThemeDictionaries["Light"] =
        new ResourceDictionary { Source = new Uri("ms-appx:///LightTheme.xaml") };
}
else
{
    // 切换到深色主题
    Application.Current.Resources.ThemeDictionaries["Dark"] =
        new ResourceDictionary { Source = new Uri("ms-appx:///DarkTheme.xaml") };
}

需要注意的是,UWP应用程序的主题资源是根据系统设置的主题来自动切换的。如果用户在系统设置中更改了主题,应用程序会自动应用相应的主题资源。

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和项目要求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

win10 uwp 切换主题

本文主要说如何UWP切换主题,并且如何制作主题。 一般我们的应用都要有多种颜色,一种是正常的白天颜色,一种是晚上的黑夜颜色,还需要一种辅助的高对比颜色。这是微软建议的,一般应用都要包含的颜色。...那么问题就是我们如何切换我们的主题。...在这前,我们先说如何制作主题,其实主题就是Dictionary,我们在解决方案加上两个文件夹,一个是View,一个是ViewModel,其中View将会放主题,如果主题比较多,还可以在View加一个文件夹...参见:https://embracez.xyz/xaml-uwp-themes/ 我们总是会使用白天,夜间模式,那么我们需要切换主题UWP切换主题简单 下面使用我做的一个按钮 夜间白天主题按钮 NightDayThemeToggleButton...UWP 和系统一样的主题 UWP如果想保持主题和系统一样,随着系统主题,简单方法,在App.xaml,删除RequestedTheme="Light" 因为在UWP,没有给他一个值,就会和系统一样,但是在我们

75030

win10 uwp 切换主题

本文主要说如何UWP切换主题,并且如何制作主题。 一般我们的应用都要有多种颜色,一种是正常的白天颜色,一种是晚上的黑夜颜色,还需要一种辅助的高对比颜色。这是微软建议的,一般应用都要包含的颜色。...那么问题就是我们如何切换我们的主题。...在这前,我们先说如何制作主题,其实主题就是Dictionary,我们在解决方案加上两个文件夹,一个是View,一个是ViewModel,其中View将会放主题,如果主题比较多,还可以在View加一个文件夹...参见:https://embracez.xyz/xaml-uwp-themes/ 我们总是会使用白天,夜间模式,那么我们需要切换主题UWP切换主题简单 下面使用我做的一个按钮 夜间白天主题按钮 NightDayThemeToggleButton...UWP 和系统一样的主题 UWP如果想保持主题和系统一样,随着系统主题,简单方法,在App.xaml,删除RequestedTheme="Light" 因为在UWP,没有给他一个值,就会和系统一样,但是在我们

1K10
  • win10 uwp 资源字典 资源的key所有的元素都可以定义资源合并资源字典主题资源共享的资源用户控件资源定义

    本文告诉大家如何定义、使用资源 本文主要翻译ResourceDictionary and XAML resource references - UWP app developer ,里面的代码我重新写了一下...资源的key 从上面的代码可以看到,所有的资源定义都有一个 Key ,通过这个 Key 就可以 StaticResource 找到需要的资源。...实际上资源可以被重新定义,在后面的定义会覆盖前面的,所以如果有两个从重复定义,会使用后面一个。 主题资源 上面用的是静态的资源,如果需要跟着主题修改的资源就是主题资源。...实际上主题字典和资源字典是相同的,不同在于定义。下面来创建一个不同颜色的主题 <!...关于主题切换,请看[切换主题 (https://lindexi.gitee.io/post/win10-uwp-%E5%88%87%E6%8D%A2%E4%B8%BB%E9%A2%98.html ) 共享的资源

    1.1K10

    如何使用Fluent Design System (下)

    兼容旧版本 FDS最常见的问题之一是如何与Fall Creators Update之前的版本兼容,其实做起来也挺简单的,ColorfulBox就实现了Creators Update与Fall Creators...var frameworkElement = Window.Current.Content as FrameworkElement; return frameworkElement.RequestedTheme...6.3 未来 通过FDS的五个主题可以看出FDS的一个主要目的是数字内容通过设备与真实世界链接,这是个很好的愿景。...结语 上一篇文章承诺过尽量写短一些,但这篇文章的主题是个很庞大的话题,即使长话短说也短不了多少,所以分成两篇发布了。...何况这个主题是讨论UWP中额FDS,不太想涉及WPF。上一篇文章的评论里提到FDS其中几种元素在WPF上的实现,有兴趣可以参考一下。 8.

    1.2K20

    如何ASP.NET默认的资源编程方式支持非.ResX资源存储

    之前写了两篇文章《.NET资源并不限于.ResX文件》(上篇、下篇),介绍了如何通过自定义ResourceManager的方式来扩展资源的存储形式。...在本篇文章中我们将实现自定义ResourceManager和ASP.NET之间的集成,ASP.NET现有的资源编程方式支持我们自定义的ResourceManager。...前者是一个全局意义的资源文件,供所有Web页共享;后者则是基于某个Web页单独使用的本地资源。...二、创建自定义ResourceProvider 要让ASP.NET现有的资源编程方式将我们添加的XML作为资源存储,必须了解ASP.NET内部采用的资源读取机制。....resx文件,你可以采用任意存储形式[上篇] .NET的资源并不限于.resx文件,你可以采用任意存储形式[下篇] 如何在ASP.NET应用中使用自定义资源存储形式

    1.1K90

    dotnet 从入门到放弃的 500 篇文章合集

    图标颜色 win10 uwp 修改Pivot Header 颜色 win10 UWP 修改密码框文字水平 win10 uwp 关联文件 win10 uwp 切换主题 win10 uwp 判断设备类型 win10...UWP 动画 win10 uwp 参考 win10 uwp 反射 win10 uwp 发邮件 win10 uwp 右击选择GridViewItem win10 uwp 后台获取资源 win10 uwp...如何拖动一个TextBlock的文字到另一个TextBlock win10 uwp 如何 Page 继承泛型类 win10 uwp 如何一个集合按照需要的顺序进行排序 win10 UWP 序列化...uwp 资源字典 win10 uwp 起源Origin 含源代码 win10 uwp 进度条 Marquez win10 uwp 进度条 WaveProgressControl win10 uwp 选颜色...type-使用构造 win10-uwp-使用md5算法 win10-uwp-保存用户选择文件夹 win10-uwp-入门 win10-uwp-兴趣线 win10-uwp-切换主题 win10-uwp-列表模板选择器

    10.4K20

    如何使用Fluent Design System (上)

    Fall Creators Update(16299)中如何实现FDS以及其它FCU的新API,极具参考价值。...简单来说Acrylic只是一个Brush,UWP提供了一组Acrylic Brush给开发者使用,通过ThemeResource找到资源名字中包含“Acrylic”的Brush即可轻松在应用中使用Acrylic...2.5 Scale 在FDS中,伸缩性这个主题比较特殊。...它没有主打的控件或API,简单地理解成适应各种屏幕尺寸的响应式设计也可以,但我更愿意将它的主旨理解成设计可以在0D到3D的形式中延伸,即可以适应从语言到鼠标、键盘、触摸、MR等各种形式的输入和输出。...对设计师和开发人员来说这个主题可能不太有趣,毕竟它看起来只是繁琐,一点都不华丽。但我觉得重申这个主题十分重要,UWP诞生的目的就是为了打造能在各种设备上运行的通用应用,伸缩性对UWP至关重要。

    2.4K30

    win10 uwp MVVM入门

    UWP 虽然可以直接在xaml.cs 写逻辑但是我们是推荐使用 MVVM 框架,写一个自己的框架也很简单。 本文主要:如何UWP 使用 MVVM,如何做一个自己的框架。...写在xaml.cs,这是最简单的方式,可以使用代码或在xaml绑定DataContent和ViewModel 写成 xaml 静态资源,这个方式我们使用次数还是比较多,可以 Code 不写代码就可以绑定...我们说完了在App.xaml 使用静态资源,还没说如何写一个类,包含我们的 ViewModel ,然后写出静态资源,我们所有的 ViewModel 都从他这里拿。...我们不可以两个页面直接联系,我们需要让一个页面和他的上层联系,上层发给他要联系页面。 ? 关于这个是如何做,大家可以看下面的 MasterDetail ,这个我放在后面,后面的才是好的。...E7%AE%80%E5%8D%95MasterDetail/ 我们需要做的:如何两个页面通信 ?

    2K10

    多个线程为了同个资源打起架来了,该如何他们安分?

    并发 另外,操作系统也为每个进程创建巨大、私有的虚拟内存的假象,这种地址空间的抽象每个程序好像拥有自己的内存,而实际上操作系统在背后秘密地多个地址空间「复用」物理内存或者磁盘。...举个类比,2 个资源的信号量,相当于 2 条火车轨道,PV 操作如下图过程: 信号量与火车轨道 操作系统是如何实现 PV 操作的呢?...PV 操作如何使用的呢? 信号量不仅可以实现临界区的互斥访问控制,还可以线程间的事件同步。 我们先来说说如何使用信号量实现临界区的互斥访问。...再来,我们说说如何使用信号量实现事件同步。 同步的方式是设置一个信号量,其初值为 0。...即偶数编号的哲学家「先拿左边的叉子后拿右边的叉子」,奇数编号的哲学家「先拿右边的叉子后拿左边的叉子」。 上面的程序,在 P 操作时,根据哲学家的编号不同,拿起左右两边叉子的顺序不同。

    59530

    win10 uwp 自定义控件入门

    本文告诉大家如何UWP 使用 CustomControl 自定义控件,在 UWP 的自定义控件的中文翻译是模板化控件,通过自定义控件可以完全控制整个控件的布局和渲染。...默认创建的自定义控件是没有带 xaml 的,如果想要让 CustomControl 可以使用 xaml 就需要引入主题的方法 下面就来告诉大家如何使用 xaml 来做界面 在 CustomControl...这样可以对应资源字典和创建的控件 在资源字典先引用命名控件,我这里创建 Board 是在 lindexi.UWP.Framework 命名空间,就需要在资源字典引用xmlns:local="using...布局就是子节点控件放在该放的地方,虽然定义了视觉树,知道了一个控件的里面包含了哪些控件,但是这个控件还没准备好里面的控件的坐标和大小。...这就是测量的过程,测量的过程就是每个控件知道子节点的大小,从而计算出控件的大小,然后将控件的大小返回给上一层,上一层可以知道子节点的大小。

    89220
    领券