【UWP】Toggle Theme 切换主题的推荐实现方式 (2)

本文介绍如何根据应用主题动态调整标题栏颜色,包括不同状态下的按钮背景色和前景色,以实现与系统主题一致的效果。通过设置颜色字典并关注CoreApplication的主题变化,确保在切换主题时标题栏的视觉连续性。文章提供了详细的颜色配置示例,并建议在 Adaptive 主题下将某些颜色设为 null,以保持系统默认。
摘要由CSDN通过智能技术生成

背景

前一篇博文留下了一个遗憾: 用户切换应用主题时应用主体内容会发生响应, 但标题栏无法随之改变. 本文探讨标题栏的修正.

标题栏按钮颜色设置

不去弄选择分支了. 直接打一个字典就行. 此处我的设置如下:

ItemNoteLight Color / RGBDark Color / RGB
ButtonBackgroundColor普通状态下按钮背景色TransparentTransparent
ButtonForegroundColor普通状态下按钮前景色BlackWhite
ButtonInactiveBackgroundColor窗口未激活状态下按钮背景色TransparentTransparent
ButtonInactiveForegroundColor窗口未激活状态下按钮前景色144, 144, 14496, 96, 96
ButtonHoverBackgroundColor光标位于按钮上时按钮背景色233, 233, 23345, 45, 45
ButtonHoverForegroundColor光标位于按钮上时按钮前景色BlackWhite
ButtonPressedBackgroundColor光标按下时按钮背景色237, 237, 23741, 41, 41
ButtonPressedForegroundColor光标按下时按钮前景色95, 95, 95167, 167, 167

此处注意三个问题:

  1. 应用使用了 CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true; 将应用内容扩展至标题栏
  2. 当设置主题为 Adaptive (Default) 时应将颜色值设置为 null , 此时颜色值会回落为系统默认状态. 此时我仍将 ButtonBackgroundColorButtonInactiveBackgroundColor 设置为透明, 避免标题栏的割裂感.
  3. 表中除上面提到的两项, 其他色值均与 Windows 系统相同.

实现步骤

  1. 先封装一个公共方法, 用于根据主题设置标题栏;
  2. 在应用启动时调用;
  3. 在切换主题时调用.

OVER.

在设计随系统切换主题时, 其实一早就注意到 ActualThemeChanged 事件, 准备先试一下将颜色设置为 null 看能不能行得通. 结果还比较满意, 就不考虑这个事件了嗷.

转载请注明来源。
文章地址 https://blog.csdn.net/brandonw3612/article/details/119846875

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

brandonw3612

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值