C# WPF实现动画渐入暗黑明亮主题切换效果
效果图如下
最近在Bilibili的桌面端看到一个黑白主题切换的效果感觉,挺有意思。于是我使用WPF尝试实现该效果。
主要的切换效果,基本实现不过还存在一些小瑕疵,比如字体等笔刷不能跟随动画进入进行切换。因为Bilibili的客户端是用electron写的,前端使用的html,css确实太强了,这咱只能佩服。
实现思路
在文末已付上代码的地址
-
UI使用三段式的布局,那么第一列和第三列可以使用白色或黑色来进行主题底色的实现。而第二列则使用一个带透明度的灰色进行覆盖底色
-
切换主题时,需要两部分操作,一是切换底色,二是切换文本等前景色的资源字典。因此我准备了三个资源字典进行主题切换。Main用于存储不变的笔刷资源,Light和Dark分别保存在明亮和暗黑两种状态下显示不同的资源。
</