可以使用 XAML AcrylicBrush 或预定义的 AcrylicBrush 主题资源将应用内亚克力应用于应用的表面。
WinUI 包括一系列画笔主题资源,这些资源尊重应用的主题,并根据需要回退到纯色。 若要绘制特定的surface,请将其中一个主题资源应用于元素背景,就像应用任何其他画笔资源一样。
<Grid Background="{ThemeResource AcrylicInAppFillColorDefaultBrush}">
注释
可以在 microsoft-ui-xaml GitHub 存储库的
自定义丙烯酸画笔
可以选择向应用的亚克力添加颜色色调,以显示品牌或与页面上的其他元素提供视觉平衡。 若要显示颜色而不是灰度,需要使用以下属性定义自己的亚克力画笔。
- TintColor:颜色/色调覆盖层。
- TintOpacity:色调层不透明度。
- TintLuminosityOpacity:控制允许从背景通过亚克力表面的饱和度和亮度。
- FallbackColor:在节电模式中替换 Acrylic 的纯色。 对于背景亚克力,当应用不在活动桌面窗口中时,回退颜色也会替换亚克力。
若要添加亚克力画笔,请定义深色、浅色和高对比度主题的三个资源。 在高对比度中,我们建议使用 SolidColorBrush ,其 x:Key 深色/浅亚克力Brush 相同。
注释
如果未指定值 TintLuminosityOpacity ,系统会根据 TintColor 和 TintOpacity 自动调整其值。
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Default">
<AcrylicBrush x:Key="MyAcrylicBrush"
TintColor="#FFFF0000"
TintOpacity="0.8"
TintLuminosityOpacity="0.5"
FallbackColor="#FF7F0000"/>
</ResourceDictionary>
<ResourceDictionary x:Key="HighContrast">
<SolidColorBrush x:Key="MyAcrylicBrush"
Color="{ThemeResource SystemColorWindowColor}"/>
</ResourceDictionary>
<ResourceDictionary x:Key="Light">
<AcrylicBrush x:Key="MyAcrylicBrush"
TintColor="#FFFF0000"
TintOpacity="0.8"
TintLuminosityOpacity="0.5"
FallbackColor="#FFFF7F7F"/>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
以下示例演示如何在代码中声明 AcrylicBrush。
AcrylicBrush myBrush = new AcrylicBrush();
myBrush.TintColor = Color.FromArgb(255, 202, 24, 37);
myBrush.FallbackColor = Color.FromArgb(255, 202, 24, 37);
myBrush.TintOpacity = 0.6;
grid.Fill = myBrush;