WinUI3开发_使用mica效果
简介
Mica(云母)是Windows10/11上的一种现代化效果,是Windows10/11上所使用的Fluent Design(设计语言)里的一个效果,Windows10/11上所使用的Fluent Design皆旨在于打造一个人类、通用和真正感觉与 Windows 一样的设计。
WinUI3就是Windows10/11上的一个SDK,用于创建符合Win10/11 Fluent Design语言标准的软件开发包,通过这个SDK可以轻松创建与Win10/11一样的UI程序。
Mica的核心思想是与系统环境贴合,开启此效果可以让你的UI程序主题跟随系统主题进行变化,当你的电脑上开启节省模式或关闭这类效果时,你的程序也会失去该效果,让你的程序看起来似乎是Windows自带的程序一样,这样的好处是可以跟随系统来动态切换不同效果,并且UI统一化,不再是千篇一律的UI界面,同时能够自带根据系统功耗来实现节省电源的功能。
使用Mica效果
开启Mica效果有两个方式,第一个是xml,在你的MainWindow.xaml里使用window的SystemBackdrop属性:
<Window.SystemBackdrop><MicaBackdrop Kind="Base"/>
</Window.SystemBackdrop>
另外一种方法是使用代码的方式,首先包含头文件:
#include <winrt/impl\Microsoft.UI.Xaml.Media.2.h>
#include <winrt/impl/Microsoft.UI.Composition.SystemBackdrops.0.h>
去除名字空间:
using namespace winrt::Microsoft::UI::Xaml::Media;
using namespace winrt::Microsoft::UI::Composition::SystemBackdrops;
在构造函数里添加下列代码:
MicaBackdrop mica = MicaBackdrop();
mica.Kind(MicaKind::Base);
this->SystemBackdrop(mica);
在没有开启云母效果时它是这样的:
开启云母之后是这样的:
使用代码的好处是可以判断当前是否支持Mica:
if (MicaController::IsSupported()) {MicaBackdrop mica = MicaBackdrop();mica.Kind(MicaKind::Base);this->SystemBackdrop(mica);
}
这样更加灵活一点,另外Mica还有Mica alt,Mica alt是针对深色主题做了优化,当你使用深色模式时使用Mica alt效果会更好一点:
mica.Kind(MicaKind::BaseAlt);
Mica和Mica alt的区别
下图展示了它俩的区别,最大的区别在于深色主题上: