C# WPF实现动画渐入暗黑明亮主题切换效果

C# WPF实现动画渐入暗黑明亮主题切换效果

效果图如下


最近在Bilibili的桌面端看到一个黑白主题切换的效果感觉,挺有意思。于是我使用WPF尝试实现该效果。
主要的切换效果,基本实现不过还存在一些小瑕疵,比如字体等笔刷不能跟随动画进入进行切换。因为Bilibili的客户端是用electron写的,前端使用的html,css确实太强了,这咱只能佩服。

实现思路

在文末已付上代码的地址

  1. UI使用三段式的布局,那么第一列和第三列可以使用白色或黑色来进行主题底色的实现。而第二列则使用一个带透明度的灰色进行覆盖底色

  2. 切换主题时,需要两部分操作,一是切换底色,二是切换文本等前景色的资源字典。因此我准备了三个资源字典进行主题切换。Main用于存储不变的笔刷资源,Light和Dark分别保存在明亮和暗黑两种状态下显示不同的资源。
    C# WPF实现动画渐入暗黑明亮主题切换效果_第1张图片
    C# WPF实现动画渐入暗黑明亮主题切换效果_第2张图片
    C# WPF实现动画渐入暗黑明亮主题切换效果_第3张图片

你可能感兴趣的:(WPF开发心得,c#,wpf,开发语言)