首页 > 解决方案 > 如何制作不聚焦的窗户亚克力?

问题描述

当亚克力窗口没有聚焦时,它不是亚克力。

代码

<Page
    x:Class="AcrilicTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:media="using:Windows.UI.Xaml.Media"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Page.Resources>
        <media:AcrylicBrush x:Key="HostBackdropBrush"
                            BackgroundSource="HostBackdrop"
                            TintColor="LightBlue"
                            TintOpacity="0.6"
                            FallbackColor="LightSkyBlue" />
    </Page.Resources>

    <Grid Background="{StaticResource HostBackdropBrush}" />
</Page>



截图

重点(亚克力):

在此处输入图像描述

不聚焦(不是亚克力):

在此处输入图像描述

标签: c#.netwpfuwp

解决方案


这是设计使然。“渲染丙烯酸表面是 GPU 密集型的,这会增加设备功耗并缩短电池寿命。” 当桌面上的应用程序窗口停用时,背景丙烯酸将被替换为纯色。有关详细信息,请参阅丙烯酸材料。

我可以禁用此功能以获得漂亮的界面吗?

如果你使用背景丙烯酸(BackgroundSource="HostBackdrop"),这是不可能的。如果您使用应用内丙烯酸(BackgroundSource="Backdrop"),在您的情况下,它看起来会更好。当您的应用程序不在活动桌面窗口中时,亚克力仍然存在。

<Grid>
    <Grid.Resources>
        <AcrylicBrush x:Key="MyAcrylicBrush"
        BackgroundSource="Backdrop"
        TintOpacity="0.3" TintColor="#FFFF0000" FallbackColor="#FF008000"></AcrylicBrush>
    </Grid.Resources>

    <Grid.Background>
        <ImageBrush ImageSource="Assets/panda.jpg"></ImageBrush>
    </Grid.Background>

    <Rectangle Fill="{StaticResource MyAcrylicBrush}" Height="300" Width="500"></Rectangle>
</Grid>

在此处输入图像描述


推荐阅读