通过


应用内透明特效 Acrylic

可以使用 XAML AcrylicBrush 或预定义的 AcrylicBrush 主题资源将应用内亚克力应用于应用的表面。

WinUI 包括一系列画笔主题资源,这些资源尊重应用的主题,并根据需要回退到纯色。 若要绘制特定的surface,请将其中一个主题资源应用于元素背景,就像应用任何其他画笔资源一样。

<Grid Background="{ThemeResource AcrylicInAppFillColorDefaultBrush}">

注释

可以在 microsoft-ui-xaml GitHub 存储库的 AcrylicBrush 主题资源文件中查看这些资源。

自定义丙烯酸画笔

可以选择向应用的亚克力添加颜色色调,以显示品牌或与页面上的其他元素提供视觉平衡。 若要显示颜色而不是灰度,需要使用以下属性定义自己的亚克力画笔。

  • 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;